php大致有三种字符串连接:
1、直接用.来进行连接。
2、用.=进行连接。
3、先压入数组,再通过join函数连接。
下面分别对这三种方法的效率进行测试:
第一种方法代码如下:
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <?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
第二种方法代码如下:
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <?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
第三种方法代码如下:
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 <?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
由上可见,直接通过.进行字符串的连接效率最为低下。