我在說這裏的性能提升。從我所知道的,你可以重複變量在雙引號("
),像這樣:正確使用雙引號和單引號?
<?php
echo "You are $yourAge years old";
?>
但單引號將只返回You are $yourAge years old
。但是性能差異呢?我一直遵循單引號更快的規則,因爲PHP解釋器不必搜索字符串中的變量。但我在網上看到越來越多的博客和論壇帖子有不同的說法。
有沒有人真的有關於此主題的任何信息?也許基準測試或什麼?
我在說這裏的性能提升。從我所知道的,你可以重複變量在雙引號("
),像這樣:正確使用雙引號和單引號?
<?php
echo "You are $yourAge years old";
?>
但單引號將只返回You are $yourAge years old
。但是性能差異呢?我一直遵循單引號更快的規則,因爲PHP解釋器不必搜索字符串中的變量。但我在網上看到越來越多的博客和論壇帖子有不同的說法。
有沒有人真的有關於此主題的任何信息?也許基準測試或什麼?
按照PHP Benchmark,所不同的是極其微不足道的:
single (') quotes. 20 bytes Text and 3x a $ : $tmp[] = 'aa $ aaaa $ aaaa $ a'
235 µs
double (") quotes. 20 bytes Text and 3x a $ : $tmp[] = "aa $ aaaa $ aaaa $ a";
226 µs
即使差異是它們是什麼多,他們將不相關現實生活中的表現IMO。數據庫和文件操作需要幾十次,如果不是數百倍的時間。這並不是說你的問題不完全有效,但是在優化你的代碼時並沒有什麼大不了的。
可讀性更重要得多。
我自己沒有進行基準測試。我讀過的單引號從http://phpbench.com等地方更快。實際上我今天在PHP Best Practices上看到,雙引號實際上更快,因爲他們沒有提供任何資源: - /。這裏提供
這正是我看到的博客文章之一。 – Phox 2010-03-11 19:37:24
基準是非常有趣,內容翔實,並回答你的問題。
The PHP Benchmark網站之間沒有顯示出很大的差別(底部的第二次測試)。我的意思是,它速度稍微快一些,但我確信,這幾乎不需要擔心。
如果您擔心自己的網站性能,那麼與打印電話相比,您可能需要更好的地方纔能看到微秒。
啊,謝謝。偉大的網站。說實話,如果性能增益儘可能少,我寧願讓我的代碼更可讀,更漂亮,而不必擔心它:P我想知道它是如何更快。 – Phox 2010-03-11 19:40:13
單引號速度更快,因爲解釋器不必掃描變量。儘管如此,不要爲了最小的性能改進而犧牲代碼的易讀性或可理解性。 – 2010-03-11 19:36:22
不要嘗試做微型優化。在考慮字符串聲明的性能差異之前,肯定還有其他部分可以進行優化。 – Gumbo 2010-03-11 19:36:36