说,你有这样的条件;
if ($condition_1 && $condition_2)
您可以选择将其写为
if ($condition_2 && $condition_1)
现在,如果condition_1需要1 ms来判断它是真还是假而另一方面condition_2需要更长的时间,比如说1000ms!,你会用哪种方式写上面的条件?右边或左边较慢的一个?
我假设当其中一个条件被发现为FALSE时,PHP就不会费心去检查其他条件是否为TRUE。如果确实如此,那将是本世纪最大的惊喜!
答案 0 :(得分:9)
条件从左到右进行评估。将最短的条件放在最左边的位置。你是对的,如果if语句中最左边的条件变为false,则根本不检查下一个条件。
答案 1 :(得分:2)
C
和C++
在FALSE
条件下的第一个AND
中断。 PHP
也是如此。所以,我建议先把较短的一个。这个例子清楚地说明了这个案例:
function short(){
return false;
}
function long(){
sleep(5);// sleep for 5 secondsd
return true;
}
if ( short() && long() ){
echo "condition passed";
}else{
echo "condition failed";
}
这几乎会立即打印“条件失败”而不等待5秒......