PHP懒惰布尔计算?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (69)

我有这样一个条件声明:

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

PHP有懒惰的布尔计算,即它会检查$boolean,如果是假的,不执行操作?如果是这样,我的变量的顺序是什么?

提问于
用户回答回答于
用户回答回答于

是的,是这样的。这就是所谓的short-circuit 计算。参阅文档上的注释...

至于order,则根据优先级执行检查,然后从左到右。所以:

A || B || C

先评估A,然后B只有A是假的,B只有A和B都是假的。

A AND B || C

将总是评估B || C,因为||AND(不是正确的&&)具有更高的优先级。

扫码关注云+社区

领取腾讯云代金券