一尘不染

'AND'vs'&&'作为运算符

php

我有一个代码库,开发人员决定使用ANDOR而不是&&||

我知道运算符的优先级(&&之前and)有所不同,但是使用给定的框架(准确地说是PrestaShop),这显然不是原因。

您正在使用哪个版本?是and不是更具有可读性&&?还是没有区别?


阅读 501

收藏
2020-05-26

共1个答案

一尘不染

如果使用ANDOR,最终将被如下所示绊倒:

$this_one = true;
$that = false;

$truthiness = $this_one and $that;

想猜得出什么$truthiness相等吗?

如果您说false… bzzzt,对不起,错!

$truthiness以上具有价值true。为什么?
=具有比更高的优先级and。添加括号以显示隐式顺序可以使这一点更加清楚:

($truthiness = $this_one) and $that

如果您使用&&而不是and第一个代码示例中的示例,它将可以按预期方式运行,并且为false

如以下注释中所述,这也可以获取正确的值,因为括号的优先级高于=

$truthiness = ($this_one and $that)
2020-05-26