我经常需要将大字符串分配给变量。在源代码中,我最好将行数控制在 80 个字符以内。
理想情况下,我希望能够将这些文字字符串放在多行上。
我想要避免的是使用串联或函数调用(例如 preg_replace()
)将多个字符串连接在一起。我不喜欢必须调用语言功能才能改进代码风格的想法。
我想要的示例:
$text = <<<TEXT
Line 1
Line 2
Line 3
TEXT;
echo($text);
这应该输出:
Line1Line2Line3
这可能吗?
最佳答案
有几个选项:
只需连接(首选)
使用
数组
构造使用
sprintf()
只需连接:
echo 'long long line1'
. 'another long line 2'
. 'the last very long line 3';
What about efficiency?
上面的代码编译成以下操作码(这就是运行的内容):
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'
从技术上讲,它更快,因为没有中间步骤,但实际上您根本不会感觉到这种差异。
使用数组
:
echo join('', array(
'line 1',
'line 2',
'line 3',
));
使用sprintf()
:
echo sprintf('%s%s%s',
'line 1',
'line 2',
'line 3'
);
关于php - 防止 PHP 解释源代码中字符串中的新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14865979/