作者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