我做了一个快速的基准:
$time = microtime();
$time = explode(' ', $time);
$time = $time[1] + $time[0];
$start = $time;
for ($count = 0; $count < 1000; $count++) {
for ($i=0;$i<10000;$i++);
}
$time = microtime();
$time = explode(' ', $time);
$time = $time[1] + $time[0];
$end = $time;
$diff = ($end - $start);
echo "Version 1 time: $diff seconds.";
$time = microtime();
$time = explode(' ', $time);
$time = $time[1] + $time[0];
$start = $time;
for ($count = 0; $count < 1000; $count++) {
for ($i=10000;$i--;);
}
$time = microtime();
$time = explode(' ', $time);
$time = $time[1] + $time[0];
$end = $time;
$diff = ($end - $start);
echo "Version 2 time: $diff seconds.";
?>
Test 1:
Version 1 time: 0.42717981338501 seconds.
Version 2 time: 0.46911406517029 seconds.
Test 2:
Version 1 time: 0.44191193580627 seconds.
Version 2 time: 0.46684908866882 seconds.
Test 3:
Version 1 time: 0.43247008323669 seconds.
Version 2 time: 0.46166205406189 seconds.击>
编辑
我再次做了基准测试,现在第二个版本更快了:
Test 1:
Version 1 time: 0.43037080764771 seconds.
Version 2 time: 0.29532289505005 seconds.
Test 2:
Version 1 time: 0.42874693870544 seconds.
Version 2 time: 0.29753398895264 seconds.
Test 3:
Version 1 time: 0.44300508499146 seconds.
Version 2 time: 0.2880539894104 seconds.实际上我发布了这个答案,因为我第一次得到了结果,而不是我的预期。但现在结果是应该的。
其他人解释的原因是与零比较执行得更快。