通常当我编写PHP时,我构造这样的条件:
if(1 === $var1
and 2 === $var2
or 1 == $var3) {
// do something here maybe
}
Run Code Online (Sandbox Code Playgroud)
我认为这使得阅读更容易,更自然.我知道当我使用Yodas时,这可能是可笑的.
我之所以在前面冠以自己的行每一个条件and
或者or
是因为它使得在调试时更容易发表意见陈述出来的一部分.
是否有任何缺点这样做与"通常"比较||
和&&
?
or
并且and
不具有相同的运算符优先级的||
和&&
.这意味着,在用于表达的特定值[a]
和[b]
,[a] and [b] != [a] && [b]
.这可能会产生非明显的错误.
请注意,一个优先级高于赋值,而另一个优先级不高.这是一个微妙的差异,即使你理解它,其他开发人员阅读你的代码可能不会.因此,我个人建议仅 使用&&
和||
在这方面,Ruby的运算符与PHP类似. Jay Fields发表了一个简单的例子.