正确的PHP方式多条件不获取“;未定义的变量“;


Proper way of PHP multiple conditions without getting "Undefined variable"

我想检查PHP多重条件的构造是否正确。

if ($role == 'admin') :
    $active_admin = 'active';
elseif ($role == 'mods') :
    $active_mods = 'active';
elseif ($role == 'writer') :
    $active_writer = 'active';
endif;

然而,我注意到在我的class属性中有未定义的变量。我想知道的是,"我需要创造额外的条件来避免得到未定义的变量吗?"

因为在这个语句中,admin被初始化为活动角色,然后其余的都是空闲的。我在源代码中查看后收到此通知。

<br />
<b>Notice</b>:  Undefined variable: active_admin in...

感谢您的建议或意见。感谢。

您可以在命令前面加上@来抑制该消息。尽管在生产环境中应该关闭通知。初始化变量也会消除通知,但我相信您在后面的行中会收到通知。

示例:

$active_admin = '';
$active_writer = '';
$active_mods = '';

等等。

这实现了与您的代码相同的效果:

$role = 'admin';
${"active_$role"} = 'active';
echo $active_admin;