php执行顺序

时间:2012-03-26 17:59:54

标签: php performance short-circuiting

说,你有这样的条件;

if ($condition_1 && $condition_2)

您可以选择将其写为

if ($condition_2 && $condition_1)

现在,如果condition_1需要1 ms来判断它是真还是假而另一方面condition_2需要更长的时间,比如说1000ms!,你会用哪种方式写上面的条件?右边或左边较慢的一个?

我假设当其中一个条件被发现为FALSE时,PHP就不会费心去检查其他条件是否为TRUE。如果确实如此,那将是本世纪最大的惊喜!

2 个答案:

答案 0 :(得分:9)

条件从左到右进行评估。将最短的条件放在最左边的位置。你是对的,如果if语句中最左边的条件变为false,则根本不检查下一个条件。

答案 1 :(得分:2)

CC++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秒......