设为首页
加为收藏
联系我们
  • 电子商务
  • 软件网络
  • 看天下
  • 营销财经
  • 关闭导航
  • 网络编程
  • 数据库类
  • 关闭导航
  • 网络编程
  • 社交礼仪
  • 数据库类
  • 人文地理
  • 关闭导航
  • 编程工具
  • 电子书籍
  • 关闭导航
  • 生活休闲
  • 演讲讲座
  • 视频教程
  • 经典影视
  • 关闭导航
  • 您的位置: 首页 > 文章中心 > 网络编程 > PHP

    PHP循环语句性能比较

    时间: 2008-08-29  信息来源: PHP爱好者  作者: 编辑整理  点击数:

    内容提示:PHP各种循环语句中foreach形式不仅简单,效率高,而且在PHP5下它还可以遍历类的属性.
    一般情况下,遍历一个数组有三种方法,for、while、foreach。其中最简单方便的是foreach。那么它们在操作和性能上存在什么差别,通常使用那种方法比较好。

    下面先让我们来测试一下共同遍历一个有50000个下标的一维数组所耗的时间:

    测试平台:
    CPU:P-M 725
    内存:512M
    硬盘:40G 5400转
    OS:Windows XP SP2
    WEB:apache 2.0.54  php5.0.4

    测试代码:
     
    <?php
    /*
      * @ Author: Lilov
      * @ Homepage: http://www.codesky.com
      * @ E-mail: zhongjiechao@gmail.com
      *
      */

    $arr = array();
    for(
    $i 0$i 50000$i++){
    $arr[] = $i*rand(1000,9999);
    }

    function 
    GetRunTime()
    {
    list(
    $usec,$sec)=explode(" ",microtime());
    return ((float)
    $usec+(float)$sec);
    }
    ######################################
    $time_start GetRunTime();

    for(
    $i 0$i count($arr); $i++){
    $str .= $arr[$i];
    }

    $time_end GetRunTime();
    $time_used $time_end $time_start;

    echo 
    'Used time of for:'.round($time_used7).'(s)<br><br>';
    unset(
    $str$time_start$time_end$time_used);
    ######################################
    $time_start GetRunTime();

    while(list(
    $key$val) = each($arr)){
    $str .= $val;
    }

    $time_end GetRunTime();
    $time_used $time_end $time_start;

    echo 
    'Used time of while:'.round($time_used7).'(s)<br><br>';
    unset(
    $str$key$val$time_start$time_end$time_used);
    ######################################
    $time_start GetRunTime();

    foreach(
    $arr as $key => $val){
    $str .= $val;
    }

    $time_end GetRunTime();
    $time_used $time_end $time_start;
    echo 
    'Used time of foreach:'.round($time_used7).'(s)<br><br>';
    ######################################

    ?> 

     

     
    Tags: 责任编辑:aboutstudy
     
      关于我们 友情链接 网站地图 广告服务 联系我们 管理登陆  
      鄂ICP备07014143号  
      Powered by EmpireCMS 5.0  
      Template designed by 直来直往.
      联系信息: QQ 365931563 Email:jiangtian001@sina.com  
      ©CopyRight 2007-2008, SKDE.CN, Inc. All Rights Reserved