如何在PHP中检查2个关键字

时间:2018-12-10 11:40:05

标签: php sql session

我要检查我的会话。下面的代码有效:

if ($_SESSION["rol"] != 'trainer') {
}

但是此代码不起作用:

if ($_SESSION["rol"] != 'trainer' || 'commandant') {
}

它应该检查两者,因为两者都有权限。我在做什么错了?

3 个答案:

答案 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解决方案随着时间的推移会变得更好,并且更易于维护。