我有一个条件语句:
if($boolean && expensiveOperation()){ ...}
PHP 是否有惰性布尔求值,即它是否会检查
$boolean
是的,确实如此。这称为短路评估。请参阅文档页面...
对于顺序,它根据运算符优先级,然后从左到右进行检查。所以:
A || B || C
首先评估 A,然后仅当 A 为假时评估 B,仅当 A 和 B 均为假时评估 C...
但是
A AND B || C
将始终评估
B || C
||
AND
&&
是的,PHP 会进行短路评估。
PHP确实有短路评估。你的例子将是它的正确使用:
https://en.wikipedia.org/wiki/Short- Circuit_evaluation#Support_in_common_programming_and_scripting_languages