PHP 惰性布尔计算

2022-08-30 16:36:45

我有一个条件语句,因此:

if($boolean && expensiveOperation()){ ...}

PHP是否有惰性布尔计算,即它会检查,如果它是假的,就不会打扰执行昂贵的操作?如果是这样,我应该按什么顺序放置变量?$boolean


答案 1

是的,确实如此。这称为短路评估。请参阅文档页面上的评论...

至于顺序,它根据操作员优先级执行检查,然后从左到右。所以:

A || B || C

将首先计算 A,然后仅当 A 为假时才计算 B,仅当 A 和 B 均为假时才计算 C...

A AND B || C

将始终计算 ,因为具有比 更高的优先级(对于 不为 true )。B || C||AND&&


答案 2

是的,PHP会进行短路评估


推荐