PHP - 和/或关键字

Ale*_*lex 22 php conditional

&&一样的"和",是||一样的PHP"或"?

我做了一些测试,看起来它们表现得一样.有什么不同吗?

如果没有,是否有任何其他PHP标志具有单词等价物,你认为它使代码更容易阅读?

Mch*_*chl 36

and并且or具有更高的优先级比&&||.更确切地说,&&并且||具有比赋值运算符(=)更高的优先级and而且or具有更低的优先级.

http://www.php.net/manual/en/language.operators.precedence.php

通常它没有什么区别,但有些情况下,不知道这种差异可能会导致一些意外的行为.看这里的例子:

http://php.net/manual/en/language.operators.logical.php

  • @Pies但它太可怕了,在这种情况下我会使用三元运算符,或者更好的是,在get_page()函数本身内处理它. (2认同)

Joh*_*ker 7

是的,它们在逻辑上是一样的.(我相信"&&"和"||"是Zend编码标准中的首选,但我找不到任何具体的信息,所以它可能都是一个梦想.或者其他东西.)

那说:

  1. "&&"和"||" 具有比"AND"和"OR" 更高的优先级(不太可能相关,但你永远不知道).

  2. 许多其他语言使用"&&"和"||",而不是文本等价物,因此可能需要使用它.

  3. 只要您始终使用您选择的一组操作符,这并不重要.


小智 5

困扰我的是:

echo (false and false ? true : true);
// (empty/false)
Run Code Online (Sandbox Code Playgroud)

您可能会猜测只有“1”(真)的可能输出,因为没有任何情况可以输出假......但它会是“”(假)。

在这种情况下使用 && 作为运算符至少满足了我的期望:

echo (false && false ? true : true);
// 1
Run Code Online (Sandbox Code Playgroud)

因此,在某些情况下,使用非常重要。