PHP效率探讨:for与foreach的对比

推荐使用foreach循环遍历,效率应该要比for要高很多,同时使用for循环遍历的时候,最好把count()函数放在后面,这样效率会更高。

PHP中foreach与 for的对比测试以及语句块带来的性能消耗测试,代码如下:有兴趣研究探讨的同学可以自己去试一试

<?php
$times = 1000000;
$i = 1;
$datas = array();
while($i <= $timesarray_push($datas$i++);

$start = microtime(true);
foreach($datas as $index => $data$data + 1;
echo 'foreach使用单条语句耗时'.(microtime(true) - $start).'秒/'.$times.'次.<br />';

$start = microtime(true);
foreach($datas as $index => $data) {
    $data + 1;
}
echo 'foreach使用花括号语句块耗时'.(microtime(true) - $start).'秒/'.$times.'次.<br />';

$start = microtime(true);
for($i = 0; $i < $times$i ++) $datas[$i] + 1;
echo 'for使用单条语句耗时'.(microtime(true) - $start).'秒/'.$times.'次.<br />';

$start = microtime(true);
for($i = 0; $i < $times$i ++) {
    $datas[$i] + 1;
}
echo 'for使用花括号语句块耗时'.(microtime(true) - $start).'秒/'.$times.'次.<br />';


$start = microtime(true);
foreach($datas as $index => $data) 
    if(true$data + 1;
echo 'if使用单条语句耗时'.(microtime(true) - $start).'秒/'.$times.'次.<br />';

$start = microtime(true);
foreach($datas as $index => $data) 
    if(true) {
        $data + 1;
    }
echo 'if使用花括号语句块耗时'.(microtime(true) - $start).'秒/'.$times.'次.<br />';

//测试输出结果:
//1.
//foreach使用单条语句耗时0.3329381942749秒/1000000次.
//foreach使用花括号语句块耗时 0.29159283638秒/1000000次.
//for使用单条语句耗时0.36926007270813秒/1000000次.
//for 使用花括号语句块耗时0.38744306564331秒/1000000次.

//2.
//foreach使用单条语句耗时 0.31623697280884秒/1000000次.
//foreach使用花括号语句块耗时0.30771088600159秒 /1000000次.
//for使用单条语句耗时0.37136602401733秒/1000000次.
//for使用花括号语句块耗时 0.36817598342896秒/1000000次.

//3.
//foreach使用单条语句耗时0.30369997024536 秒/1000000次.
//foreach使用花括号语句块耗时0.29136395454407秒/1000000次.
//for使用单条语句耗时0.35858488082886秒/1000000次.
//for使用花括号语句块耗时0.36309790611267秒/1000000 次.

//结论:
//1>foreach比for快一些
//2>{}是为了程序易读
//3>尽量少使用语句块

?>

未经允许不得转载:微信信息发源地 » PHP效率探讨:for与foreach的对比

赞 (1)
分享到:更多 ()

评论 0

评论前必须登录!

登陆 注册