让我们说我有这样的事情:PHP - 如果(条件)执行
if(1 == 0 && do_stuff()) {
...
}
显然,1不为0,所以没有点检查其他条件。那么PHP有没有运行do_stuff()
?
让我们说我有这样的事情:PHP - 如果(条件)执行
if(1 == 0 && do_stuff()) {
...
}
显然,1不为0,所以没有点检查其他条件。那么PHP有没有运行do_stuff()
?
否 - PHP使用延迟评估(有时称为短路评估),因此如果逻辑AND中的第一个条件为假,则它不会尝试评估任何其他条件。
同样,如果你正在做一个OR,并且第一个条件是真的,它不会评估第二个条件。
这就是为什么你应该把昂贵的测试放在正确的位置上的原因 – Gordon 2010-12-03 10:40:03
不,在这种情况下它不会执行do_stuff()
。
如果第一个条件是假,那么PHP从未在& &操作
运行第二个条件。如果你总是希望“do_stuf”执行对象,你当然可以把它作为首要条件如果。请参阅我的答案了解详情。 – 2010-12-03 10:45:24