2010-03-11 77 views
0

我在說這裏的性能提升。從我所知道的,你可以重複變量在雙引號("),像這樣:正確使用雙引號和單引號?

<?php 

echo "You are $yourAge years old"; 

?> 

但單引號將只返回You are $yourAge years old。但是性能差異呢?我一直遵循單引號更快的規則,因爲PHP解釋器不必搜索字符串中的變量。但我在網上看到越來越多的博客和論壇帖子有不同的說法。

有沒有人真的有關於此主題的任何信息?也許基準測試或什麼?

+1

單引號速度更快,因爲解釋器不必掃描變量。儘管如此,不要爲了最小的性能改進而犧牲代碼的易讀性或可理解性。 – 2010-03-11 19:36:22

+3

不要嘗試做微型優化。在考慮字符串聲明的性能差異之前,肯定還有其他部分可以進行優化。 – Gumbo 2010-03-11 19:36:36

回答

2

按照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。數據庫和文件操作需要幾十次,如果不是數百倍的時間。這並不是說你的問題不完全有效,但是在優化你的代碼時並沒有什麼大不了的。

可讀性更重要得多。

0

我自己沒有進行基準測試。我讀過的單引號從http://phpbench.com等地方更快。實際上我今天在PHP Best Practices上看到,雙引號實際上更快,因爲他們沒有提供任何資源: - /。這裏提供

+0

這正是我看到的博客文章之一。 – Phox 2010-03-11 19:37:24

0

The PHP Benchmark網站之間沒有顯示出很大的差別(底部的第二次測試)。我的意思是,它速度稍微快一些,但我確信,這幾乎不需要擔心。

如果您擔心自己的網站性能,那麼與打印電話相比,您可能需要更好的地方纔能看到微秒。

+0

啊,謝謝。偉大的網站。說實話,如果性能增益儘可能少,我寧願讓我的代碼更可讀,更漂亮,而不必擔心它:P我想知道它是如何更快。 – Phox 2010-03-11 19:40:13