我测试了您的 2 种代码 + 1 个无空格版本,通过引入$time_start = microtime(true);
代码之前和代码echo $time = microtime(true) - $time_start;
之后来检查处理速度。
由于处理时间接近微秒,因此结果可能会因许多微小因素而异。所以我测试了每个代码 10 次,我做了一个平均时间。
带有打印文本的测试
首选代码
<?php $time_start = microtime(true); ?>
<?php $i = 0; ?>
<?php while($i <= 5000): ?>
<?php echo $i; ?>
<?php $i++; ?>
<?php if($i == 5000): ?>
This is the end!
<?php endif; ?>
<?php endwhile; ?>
<?php echo $time = microtime(true) - $time_start; ?>
平均时间:0.00366528034210207 秒
更短的代码
<?php
$time_start = microtime(true);
$i = 0;
while($i <= 5000):
echo $i." ";
$i++;
if($i == 5000):
echo "This is the end!";
endif;
endwhile;
echo $time = microtime(true) - $time_start;
?>
平均时间:0.00243649482727052 秒
无空格代码
<?php $time_start=microtime(true);$i=0;while($i<=5000):echo $i." ";$i++;if($i==5000):echo "This is the end!";endif;endwhile;echo$time=microtime(true)-$time_start;?>
平均时间:0.00242624282836913 秒
不打印文本的测试
首选代码
<?php $time_start = microtime(true); ?>
<?php $i = 0; ?>
<?php while($i <= 5000): ?>
<?php $i++; ?>
<?php if($i == 5000): ?>
<?php $a=$i; ?>
<?php endif; ?>
<?php endwhile; ?>
<?php echo $time = microtime(true) - $time_start; ?>
平均时间:0.00143785476684571 秒
更短的代码
<?php
$time_start = microtime(true);
$i = 0;
while($i <= 5000):
$i++;
if($i == 5000):
$a=$i;
endif;
endwhile;
echo $time = microtime(true) - $time_start;
?>
平均时间:0.000472831726074218 秒
无空格代码
<?php $time_start=microtime(true);$i=0;while($i<=5000):;$i++;if($i==5000):$a=$i;endif;endwhile;echo$time=microtime(true)-$time_start;?>
平均时间:0.000457286834716797 秒
结论/总结
带打印文本
首选代码:0.00366528034210207 秒
更短代码:0.00243649482727052 秒(比以前快 33.5%)
无空格代码:0.00242624282836913 秒(比以前快 0.4%)
不打印文本
首选代码:0.00143785476684571 秒
更短代码:0.000472831726074218 秒(比以前快 66.1%)
无空格代码:0.000457286834716797 秒(比以前快 3.3%)
10 倍的平均值并不真正正确。它应该通过删除极端结果来完成 100 或 1000 次以获得很好的表示。但是通过这个简单的例子,我们可以看到前两个代码之间的显着差异,第三个代码是微不足道的。