2013-04-13 20 views
3

至於我可以看到(在GitHub上瀏覽流行的PHP代碼),也有不少人不使用string interpolation是否有任何理由在PHP中不使用字符串插值?

$loader->load($config['resource'].'.xml'); 

對戰:

$loader->load("{$config['resource']}.xml"); 

是否有任何理由(即表演)不使用字符串插值?

+0

http://stackoverflow.com/questions/13620/speed-difference-in-using-inline-strings-vs-concatenation-in-php5 – monkeyinsight

+0

你確定嗎?我的看法是相反的:許多人*正在使用字符串插值*,甚至常常使用太多字符來完成插值作業。你的問題本身也是一個很好的例子。 –

回答

4

沒有,沒有理由不使用字符串在PHP中插值。

雖然在how PHP handles string interpolation and concatenation內部微小的差異,這些差異是如此之小,他們在實踐中幾乎無法測量的,因此應該留給PHP處理。

如果或當您看到基準測試,在PHP中使用字符串時,要查找的內容通常是迭代計數。爲了獲得可測量的結果,您需要將n設置爲一些非常誇張的值,這在現實世界中從來不會發生。

總結一下,優化你在PHP中使用字符串的方式沒有什麼意義。相反,您應該關注實際上對您的網站表現有顯着影響的問題;緩存,數據庫的東西,特別是,front end

+1

我希望我可以upvote這兩次。它需要比以前說的多得多。 – cHao

+1

它實際上*不*真,當涉及到*真實*測試時,根本不會顯示任何差異。不過,我一般都會就此事完全支持你。還有其他可衡量的案例仍然完全可以忽略 –

2

是否有任何理由(即表演)不使用字符串插值?

不是表現,絕對。

唯一的原因是可讀性和可用性。即在給定的例子中,第二行在花括號中有障礙,這些花括號是無用的,並且使得代碼難以閱讀。爲什麼使用它們呢?

但是,如果它是

"$somevar.xml" 

這將只是一個品味的問題,以這種方式或串聯寫

$somevar.".xml" 
-1

不,不是但有些人認爲它是不好的代碼。但我不同意這種說法。它認爲代碼看起來更清晰,這是我在PHP中非常喜歡的一件事。

目前,我無法找到基準測試,但我可以記住結果。結果幾乎相當(100次相互作用+/- 0.0001秒)。

+0

爲什麼讓我的投票者被投票? – Matt3o12

+0

有人可能會對你的意見有點不同意,第二個是「更清楚」。我也這麼做,在這種情況下(括號是一種痛苦),但是呃。 – cHao

0

大多數時候,這只是一個味道問題。我不確定你是否真的在這裏觀察到整體偏好,但我已經在評論中寫過。

至於表現而言:

插值變得更高效更插值。如果[ref]

表現而言,不能輕易說。這需要具體的代碼,然後需要具體的代碼性能測量。因爲在大多數情況下,你不會注意到不同之處。

+0

難道你*只是*評論有沒有***性能差異在另一個答案...? :) – cHao

+0

@cHao:是的,我現在寫了一個答案,我自己看到了如何正確地闡述它:我的意思是說,你不能說哪兩個更快。我也刪除了該評論,因爲它也有點誤導,因爲您也評論了這一點。 –

相關問題