有幾個選項:
正好連接(首選)
使用array
構建
使用sprintf()
只是合作ncatenate:
echo 'long long line1'
. 'another long line 2'
. 'the last very long line 3';
什麼效率?
上面的代碼編譯成以下的操作碼(這是什麼運行):
5 0 > CONCAT ~0 'long+long+line1', 'another+long+line+2'
1 CONCAT ~1 ~0, 'the+last+very+long+line+3'
2 ECHO ~1
正如你所看到的,它通過連接頭兩行建立字符串,然後是最後一行;丟棄最後的~0
。在內存方面,差異可以忽略不計。
這是一個單echo
聲明會是什麼樣子:
3 0 > ECHO 'long+long+line1another+long+line+2the+last+very+long+line+3'
從技術上講它的速度更快,因爲沒有中間步驟,但在現實中,你會不會覺得什麼不同。
使用array
:
echo join('', array(
'line 1',
'line 2',
'line 3',
));
使用sprintf()
:
echo sprintf('%s%s%s',
'line 1',
'line 2',
'line 3'
);
你真的無法避免周圍的字符串連接工作這一個...一個多行字符串中的換行是一個換行符。 – Ocramius 2013-02-14 00:51:19
我讀過這3次,但它仍然沒有任何意義。你想剝離換行符,以便瀏覽器源碼看不到新行嗎? – 2013-02-14 00:52:47
@ Lawrence Cherone:OPs Coding Conventions否認他使用超過80個字符的代碼行,所以他想分割他們 – zerkms 2013-02-14 00:53:46