【发布时间】:2011-09-20 21:30:53
【问题描述】:
我目前正在使用一个类来控制对我网站中某些文件的访问。课堂效果很好。然而,我最近被告知我需要为网站的一个特定部分创建一个更细粒度的系统。我的第一个倾向是使用嵌套的 if-else-if 来设置几个变量。
$admin = new Admin();
if( $admin->user_access('can_view_g2')) {
$groupNum = $group2;
$adminGroup = true;
} else {
if( $admin->user_access('can_view_g3')) {
$groupNum = $group3;
$adminGroup = false;
} else {
if( $admin->user_access('can_view_g4')) {
$groupNum = $group4;
$adminGroup = true;
} else {
. . .
现在我想删除几行代码并创建一个更清晰的流控制语句。我想使用 switch 语句来处理这个问题,但我不确定这是否可能,因为我正在访问一个类的方法和属性。
switch ($admin->user_access($permission)) {
case 'can_view_g2':
$groupNum = $group2;
$adminGroup = true;
break;
case 'can_view_g3':
$groupNum = $group3;
$adminGroup = true;;
break;
case 'can_view_g4':
$groupNum = $group4;
$adminGroup = true;
. . .
我上面的内容不起作用。有谁知道这样做的方法或至少使用更有效的流量控制方法?
【问题讨论】:
标签: php class methods control-flow