作者chrisQQ (ChrisLiu)
看板PHP
标题Re: [分享] 使用单引号或双引号
时间Wed Jan 11 22:26:34 2012
测试环境
OS: Debian wheezy/sid 32bit
CPU: P4 2.66
RAM: DDR400-3G
PHP 5.5.0-dev (cli) (built: Dec 7 2011 18:01:26)
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2011 Zend Technologies
首先产生 $array[$i] = rand(1, 10); $i=0~$i=9999
然後分别用 foreach 跑下列五种
$test['value'] = $value;
$test["value"] = $value;
$test['value'.$value] = $value;
$test["value".$value] = $value;
$test["value{$value}"] = $value;
结果分别为
0.0030241012573242
0.0029821395874023
0.009270191192627
0.0089008808135986
0.0031299591064453
单位:秒
在另外一台
PHP 5.2.6-1+lenny9 with Suhosin-Patch 0.9.6.2 (cli) (built: Aug 4 2010
03:25:57)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
0.003613
0.003465
0.006990
0.006933
0.003652
在另外一台
PHP 5.3.3 (cli) (built: Mar 30 2011 13:51:41)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
0.0026431083679199
0.0028738975524902
0.0065069198608398
0.0065040588378906
0.002842903137207
在另外一台
PHP 5.1.6 (cli) (built: Jul 31 2008 00:08:07)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
0.017944097518921
0.0079720020294189
0.022947072982788
0.02289605140686
0.0089378356933594
结论
除了 5.3.3 那台很微妙之外,前两个结果颠倒…
1. 双引号速度真的大於单引号
2. 单双引号字串用 . 相加几乎一样
3. 双引号中变数替换速度大於字串相加
4. 我的机器中 PHP 5.3.3 那台最好,5.1.6 这台最烂(无误
我手边找不到更旧的 php 版本的机器了…
以上
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.85.64.11
1F:推 guitarpl:哇,一直以来观念都错了OTZ.. 01/11 23:27
2F:推 gname:字串衔接不意外,但是 " 快於 ' 就真的是很奇妙了~ 01/11 23:29
3F:推 kusoayan:这麽多台…你是机器人吗XDDDDDD 01/12 00:12
4F:推 liaosankai:好棒的验证文 01/12 09:26
5F:→ ileadu:这篇有误.. 单引号较快 你测试code可能没写好有瑕疵 07/23 02:18