比方说,你有一个这样的情况;
if ($condition_1 && $condition_2)
并且您可以选择将其编写为
if ($condition_2 && $condition_1)
现在,如果condition_1需要1毫秒来判断它是真是假,而condition_2需要更长的时间,比如说1000ms!,你会用哪种方式来写上面的条件呢?右边慢一点的还是左边慢一点的?
我假设当发现其中一个条件为假时,PHP不会检查另一个条件是否为真。如果真是这样,那将是本世纪最大的惊喜!
发布于 2012-03-27 02:08:17
C和C++在AND条件下的第一个FALSE上中断。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";
}这几乎可以立即打印出"condition failed“,而不需要等待5秒钟。
发布于 2012-03-27 02:02:42
条件句从左到右求值。把最短的条件放在最左边的位置。您是对的,如果if语句中最左边的条件等于false,则根本不会检查下一个条件。
https://stackoverflow.com/questions/9877238
复制相似问题