一起源码网

  • QingYuanMa.com
  • 全球最大的互联网技术和资源下载平台
搜索
猜你喜欢
查看: 6255|回复: 1
打印 上一主题 下一主题

php中3种字符串连接的效率比较实例详解

[复制链接]

0

主题

0

帖子

1万

积分

钻石会员

Rank: 8Rank: 8

积分
17424
QQ
跳转到指定楼层
楼主
发表于 2020-3-9 11:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
php大致有三种字符串连接:

1、直接用.来进行连接。

2、用.=进行连接。

3、先压入数组,再通过join连接。

下面分别对这三种方法的效率进行测试:

第一种方法代码如下:

<?php   
   function get_tm() {
   list ( $usec, $sec ) = explode ( " ", microtime () );
   return (( float ) $usec + ( float ) $sec);
   }
   
   $temp="test";
   $result="";
   define("num",100000);
   $start=get_tm();
  
   for($i=0;$i<num;$i++)
   {
     $result=$result.$temp;
   }
   echo get_tm()-$start;
   
?>

运行4次,除去第一次运行时间,三次时间分别为:

22.165272951126
22.003527164459
22.15947508812

第二种方法代码如下:

<?php     
   function get_tm() {
   list ( $usec, $sec ) = explode ( " ", microtime () );
   return (( float ) $usec + ( float ) $sec);
   }
   
   $temp="test";
   $result="";
   define("num",100000);
   $start=get_tm();
  
   for($i=0;$i<num;$i++)
   {
     $result.=$temp;
   }
   echo get_tm()-$start;
   
?>

运行4次,除去第一次运行时间,三次时间分别为:

3.1967310905457
3.1296961307526
3.0872850418091

第三种方法代码如下:

<?php      
   function get_tm() {
   list ( $usec, $sec ) = explode ( " ", microtime () );
   return (( float ) $usec + ( float ) $sec);
   }
   
   $temp="test";
   $result="";
   $arr=array();
   define("num",100000);
   $start=get_tm();
  
   for($i=0;$i<num;$i++)
   {
     array_push($arr, $temp);
   }
   $result=join($arr);
   echo get_tm()-$start;
   
?>

运行4次,除去第一次运行时间,三次时间分别为:

3.3184430599213
3.2759411334991
3.2663381099701

由上可见,直接通过.进行字符串的连接效率最为低下。

分享到:  QQ好友和群QQ好友和群
收藏收藏
回复

使用道具 举报

0

主题

23

帖子

85

积分

注册会员

Rank: 2

积分
85
沙发
发表于 2022-7-2 18:33 | 只看该作者
完整源码下载
回复

使用道具 举报

轻源码让程序更轻更快

QingYuanMa.com

工作时间 周一至周六 8:00-17:30

侵权处理

客服QQ点击咨询

关注抖音号

定期抽VIP

Copyright © 2016-2021 https://www.171739.xyz/ 滇ICP备13200218号

快速回复 返回顶部 返回列表