[英]Working with PHP switch statements
我正在尝试学习如何使用PHP switch语句。 我想做的是检查用户角色ID。
我是在行使这项权利吗?我可以打破案例2,因为我不希望他们为编辑做任何事情。
switch ($user_data->role_id)
{
// User
case 1:
$user_data->characters = $this->character->get_many_by('user_id', $user_id);
break;
// Editor
case 2:
break;
// Admins
case 3:
$user_data->characters = $this->character->get_many_by('user_id', $user_id);
break;
// Webmaster
case 4:
$user_data->characters = $this->character->get_all();
break;
}
您可以删除案例2并合并1和3,因为它们相同,并添加默认值即可
switch ($user_data->role_id){
// User
case 1:
// Admins
case 3:
$user_data->characters = $this->character->get_many_by('user_id', $user_id);
break;
// Webmaster
case 4:
$user_data->characters = $this->character->get_all();
break;
default:
break;
}
如果您不希望$user_data->role_id
为2
(Editor)发生任何事情,则可以取出case 2: break;
码。
否则,您的switch
语句对我来说看起来不错!
编辑:我可能应该更仔细地研究这个问题。 正如班级所说,您可以结合使用User和Admin案例。 你这样说
case 1: case 3:
$user_data->characters = $this->character->get_many_by('user_id', $user_id);
break;
对我来说似乎很好。 对于情况2,您应该使用默认设置!
switch ($user_data->role_id)
{
// User
case 1:
$user_data->characters = $this->character->get_many_by('user_id', $user_id);
break;
// Admins
case 3:
$user_data->characters = $this->character->get_many_by('user_id', $user_id);
break;
// Webmaster
case 4:
$user_data->characters = $this->character->get_all();
break;
default:
break;
//Editor and all the other non specifed
}
因此,默认值适用于您之前未提到的所有情况。
我最喜欢Class的答案。 但是,这是一种典型情况,您的开关被允许占用更多空间以保持清晰。 您已经定义了用户角色,尽管用户和管理员可能有共同点,但将来可能不会。 情况2现在没有用,但可能稍后会用到。
我要添加默认值:为了完整性也要中断。 我的答案:
switch ($user_data->role_id) {
case 1: // User
$user_data->characters = $this->character->get_many_by('user_id', $user_id);
break;
case 2: // Editor
break;
case 3: // Admin
$user_data->characters = $this->character->get_many_by('user_id', $user_id);
break;
case 4: // Webmaster
$user_data->characters = $this->character->get_all();
break;
default:
break;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.