对于使用 OR 或类似运算符的 IF 语句,在发现其中一个为真后,PHP 是继续检查其余部分还是停止?例如。
if(true == true OR a_checking_function())
两者都会被检查,还是 PHP 只会检查一个?
对于使用 OR 或类似运算符的 IF 语句,在发现其中一个为真后,PHP 是继续检查其余部分还是停止?例如。
if(true == true OR a_checking_function())
两者都会被检查,还是 PHP 只会检查一个?
不,一旦true
找到第一个,它就直接进入大括号中的代码。如果您使用“AND”关键字,那么它将检查第二个条件。
您可能想查看运算符/逻辑优先级。例如,以下情况会发生什么?:
if($a = $b AND $c = $d AND $e = $f)...
if($a = $b AND $c = $d OR $e = $f)...
if($a = $b OR $c = $d AND $e = $f)...
这很容易测试:
<?php
$count = 0;
function testCond($response=false){
global $count;
$count++;
return $response;
}
if(testCond(true) || testCond(false)){
echo "At least one was true.<br>";
}
echo "testCond() was called $count time(s).";
输出:
At least one was true.
testCond() was called 1 time(s).
http://codepad.viper-7.com/bxOiW2
为每个测试调用一个函数,并让该函数增加一个全局计数变量,以便计算该函数被调用的次数。