這篇文章不是一個真正的問題,但它可能是有用的共享一些編碼技巧。優化PHP字符串連接
這是我想與你分享的一個。我將展示4個同樣的事例。但只有最後一個纔是最好的。
$foo = 'John SMITH';
echo "Hello $foo, welcome on my website.";
echo "Hello " . $foo . " welcome on my website.";
echo 'Hello ' . $foo . ' welcome on my website.';
echo 'Hello ', $foo , ' welcome on my website.';
我相信大家都知道,echo '$foo'
將無法正常工作,不過,我敢肯定,你使用雙引號來顯示一個簡單的信息。 這是不好的。
好吧,讓我們開始:第一個是壞的(以及第二個),因爲使用雙引號強制PHP掃描字符串以尋找要完成的替換(我的意思是變量)。
第二個是好一點,因爲PHP沒有替代品。
第三個,因爲簡單的引用而更好,這樣語言知道他可以發送文本而不需要處理,但是「壞」的東西是使用了連接(點運算符,就像第二個例子中那樣) 。
最後一個使用簡單的引號和昏迷操作符。爲什麼這個解決方案更好?
那麼,使用第三種解決方案會發生什麼?
php創建一個字符串,其中包含"Hello "
,那麼它必須放大它,才能將foo的內容變量(「John SMITH」),然後再放大它以放入" Welcome on my website."
句子。 然後,echo
可以利用這一點,來...迴音吧:)
而在第四之一,echo
做的唯一的事情是發送「你好」,然後$ foo的內容,那麼「歡迎我的網站。」到輸出,就這些! 因爲回聲只是發送文本,而不創建一個字符串,必須放大以包含整個文本(這將是凹的,必須增長(因爲連接),然後顯示。)
我會盡力找回一些基準,並把它們放在這裏。
費爾自由評論或反應,原諒我的英語,這不是我的母語。
你有這方面的表現數據? – brian 2009-01-06 15:23:25
這是有用的信息,但您應該以Stack Overflow的問題/答案格式顯示它。 – rjzii 2009-01-06 15:31:18
@Rob,完全相反,這些信息完全沒用。在現實生活中,你會從這樣的「優化」中獲得**沒有任何**。 – 2011-02-24 07:14:52