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
由上可见,直接通过.进行字符串的连接效率最为低下。