IF中的条件按什么顺序检查?

我有一个问题,我需要检查两个条件,A和B.事情是,检查B需要很多时间,如果A已经是假的,我不需要检查B.我可以很容易地做到:

if(a)
  if(b)
    // Do something

但是我想知道,如果我这样做if(a AND b) ,PHP解释器检查A和B,然后应用AND运算符吗? 或者它已经“知道”有一个AND运算符,所以如果A是假的,它不检查B?


你所说的就是所谓的短路评估。 我不是一个PHP专家,但在google上快速搜索解释说它是用PHP实现的。 所以,如果A是假的,B就不会被执行。

http://en.wikipedia.org/wiki/Short-circuit_evaluation


你可以使用这样的“懒惰评估”:

if (A && B) {
   //do shomething..
}

只有当“A”表达式为真时,“B”表达式才会评估。


取决于语言。 PHP一旦知道结果是错误的,就会停止评估,这意味着您可以做...

if($connection->connected() and $connection->doSomething()) {

}

它将在doSomething()如果它连接。

链接地址: http://www.djcxy.com/p/57639.html

上一篇: In what order are conditions inside an IF checked?

下一篇: Why (false and false or true) returns true