有几个选项:
正好连接(首选)
使用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