使用和/或条件为可读性而不是&& ||

Tre*_*non 1 php operators

通常当我编写PHP时,我构造这样的条件:

if(1 === $var1
   and 2 === $var2
   or 1 == $var3) {
   // do something here maybe
}
Run Code Online (Sandbox Code Playgroud)

我认为这使得阅读更容易,更自然.我知道当我使用Yodas时,这可能是可笑的.

我之所以在前面冠以自己的行每一个条件and或者or是因为它使得在调试时更容易发表意见陈述出来的一部分.

是否有任何缺点这样做与"通常"比较||&&

Fra*_*mer 6

or并且and 不具有相同的运算符优先级||&&.这意味着,在用于表达的特定值[a][b],[a] and [b] != [a] && [b].这可能会产生非明显的错误.

PHP运算符优先级

请注意,一个优先级高于赋值,而另一个优先级不高.这是一个微妙的差异,即使你理解它,其他开发人员阅读你的代码可能不会.因此,我个人建议 使用&&||

在这方面,Ruby的运算符与PHP类似. Jay Fields发表了一个简单的例子.

  • 也许不仅仅是在一起?如果您觉得需要使用`和`使用`或`,请成对使用,连贯以避免微妙,难以捕捉错误. (2认同)