我要检查我的会话。下面的代码有效:
if ($_SESSION["rol"] != 'trainer') {
}
但是此代码不起作用:
if ($_SESSION["rol"] != 'trainer' || 'commandant') {
}
它应该检查两者,因为两者都有权限。我在做什么错了?
答案 0 :(得分:1)
使用此
if ($_SESSION["rol"] != 'trainer' || $_SESSION["rol"] != 'commandant') {
}
答案 1 :(得分:1)
$role = ['trainer','commandant'];
if(!in_array($_SESSION['rol'],$role))
{
//do some stuff
}
答案 2 :(得分:1)
我可能会执行以下操作,其中isset
确保密钥存在(并在密钥不可用时帮助减少警告):
if (isset($_SESSION["rol"]) && ($_SESSION["rol"] != 'trainer' || $_SESSION["rol"] == 'commandant')) {
echo 'do some...';
}
array_key_exists
是使用isset
检查密钥的不错选择:
if (array_key_exists('rol', $_SESSION) && ($_SESSION["rol"] != 'trainer' || $_SESSION["rol"] ==
'commandant')) {
echo 'do more...';
}
希望有帮助。
PS:带有in_array()
的@dexter解决方案随着时间的推移会变得更好,并且更易于维护。