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()
如果它连接。