2010-12-06 35 views
2

許多語言的類都可以更快速地連接一串字符串。例如.Net中有StringBuilder,Java中有StringBuffer。 PHP中有沒有這樣的類允許將多個字符串有效地串接成單個字符串?或者可能的話,PHP是否有一些內置的功能,如果我想要創建一個長達10萬個字符的字符串,並通過添加字符,一次一個字符來創建它,默認情況下它會很有效。在PHP中連接字符串的有效方式

回答

0

沒有內置功能。

利用總體.=

+0

爲什麼......爲什麼我從來沒有意識到存在`。=`運算符?現在我覺得自己很愚蠢,因爲回想起來這很明顯。 – AgentConundrum 2010-12-06 00:55:29

+0

但是,如果這與大多數其他語言一樣工作,那是非常低效的。你是說絕對沒有別的辦法,或者我應該去創建一個更有效的連接字符串的類? – Kibbee 2010-12-06 00:57:05

+0

@Kibbee:你怎麼能創建自己的類,以更高效的方式連接字符串?你想要將作品存儲爲私有數組成員,並按需要「implode」?它可能會更快一點,但我不確定這是否可以顯着改善任何事情。 – zerkms 2010-12-06 00:59:09

2

PHP中沒有這樣的事情。 如果您正在生成網頁,請考慮使用echo輸出每個變量而不是連接它們。 使用輸出緩衝區也可能有所幫助。

6

使用implode()(您的字符串必須在數組中)幾乎比使用.=運算符快3倍。

編輯: 好吧,我衝的東西。它並非總是如此。行爲不是線性的。

我運行一些測試(100次迭代)。

10.000 elements: 

regular concat: 0.00069347143173218 sec 
implode():  0.00050755023956299 sec (slightly faster) 


100.000 elements: 

regular concat: 0.0088809585571289 sec 
implode():  0.0054086112976074 sec (much faster)