PHP 中 & 和 && 之间的区别

php
2022-08-30 09:48:28

我对 和 感到困惑。我有两本PHP书。一个说它们是相同的,但另一个说它们是不同的。我以为他们也是一样的。&&&

它们不一样吗?


答案 1

&是按位和。请参见按位运算符。假设您这样做:14 & 7

    14 = 1110
     7 = 0111
    ---------
14 & 7 = 0110 = 6

&&是逻辑和。请参见逻辑运算符。请考虑以下真值表:

 $a     $b     $a && $b
false  false    false
false  true     false
true   false    false
true   true     true

答案 2

其他答案是正确的,但不完整。逻辑 AND 的一个关键特征是它会短路,这意味着只有在必要时才计算第二个操作数。PHP 手册给出了以下示例来说明:

$a = (false && foo());

foo永远不会被调用,因为在计算 false 后结果已知。另一方面与

$a = (false & foo());

foo将被调用(此外,结果是 0 而不是 false)。


推荐