PHP多种条件的正确方法,而不会得到“未定义的变量”

时间:2013-12-03 06:18:06

标签: php

我想检查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...

感谢您的建议或意见。欣赏它。

1 个答案:

答案 0 :(得分:1)

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

示例:

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

这与您的代码相同:

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