为什么PHP两个逻辑运算符条件都不起作用?

时间:2018-04-09 17:22:50

标签: php

我在PHP中有以下代码:

<?php 
if( Session::exists('logged_tutor') === false OR 
    Session::exists('logged_student') === false ) { 
    // show login and registration button
} else {
    // show profile and logout link
}

?>

此处,logged_tutorlogged_student均为false。所以它应该显示个人资料和注销链接,但它始终显示登录和注册按钮。

我有什么遗漏的吗?

更新:

var_dump( Session::exists('logged_tutor') == false OR  Session::exists('logged_student') == false );

它返回true。

但我想如果logged_tutor或logged_student为true,那么显示个人资料和退出链接。

1 个答案:

答案 0 :(得分:4)

在这种情况下,您的代码应该是这样的。你希望它们都是假的,所以AND运算符就是解决方案。

<?php 
if( Session::exists('logged_tutor') === false AND 
    Session::exists('logged_student') === false ) { 
    // show login and registration button
} else {
    // show profile and logout link
}

?>

或者,如果您希望学生或辅导员会话存在以显示个人资料,请执行以下操作:

<?php 
if( Session::exists('logged_tutor') === true OR
    Session::exists('logged_student') === true) { 
    // show profile and logout link
} else {
    // show login and registration button
}

?>

在这两种情况下,您将获得完全相同的结果,这一切都取决于您使用哪一个。