入门级问题:|| (或)运营商

时间:2015-04-21 21:18:12

标签: php

当我使用||时(OR)运算符在我的if语句中,我以无限循环结束。

为简单起见,这里是var_dump:

$auth "0" 
$id "2" 
$enabled "1" 
$page "auth-login.php"

如果在if语句中未满足以下条件,则它会将用户转发到auth-login.php(如果当前$页面为auth-login.php和auth-login-validate.php,则不适用)。

没有||的声明(OR)运算符:按预期转发到auth-login.php,但还必须包含auth-login-validate.php

if ($auth == '0' && $id != '1' && $enabled == '1' && $page != 'auth-login.php') {

header('Refresh: 0; URL=auth-login.php');
die();

}

声明与|| (OR)operator:循环转发到auth-login.php。

if ($auth == '0' && $id != '1' && $enabled == '1' && $page != 'auth-login.php' || $auth == '0' && $id != '1' && $enabled == '1' && $page != 'auth-login-validate.php') {

header('Refresh: 0; URL=auth-login.php');
die();

}

1 个答案:

答案 0 :(得分:1)

将是一些与优先级相关的错误。确保将括号放在您打算封装“OR”部分的位置