我正在读一本关于PHP的书,我得到了以下表达式:
if ($finished == 1 OR getnext() == 1) exit;
据说如果$ finished为true,则从不执行getnext函数;
接下来解释说如果我们将函数传递给if语句之前的变量,就像这样:
$gn = getnext();
并在if语句中使用它:
if($finished == 1 OR $gn == 1) exit;
如果第一个条件为真,则还检查第二个条件......
有什么区别?我无法抓住它
答案 0 :(得分:0)
大多数语言,包括PHP将停止评估是否不再需要它。
因此,如果你的书说它检查变量而不是功能,即使第一次评估是真的,那么我也不相信。
$hi = function(){
echo "hi"; return true;
};
function hi(){
echo "hi"; return true;
}
echo true || $hi() ? 'true' : ''; // true
echo true || hi() ? 'true' : ''; // true
此结果表明该函数未在或语句后执行。