php - 防止 PHP 解释源代码中字符串中的新行

标签 php string coding-style string-formatting code-formatting

我经常需要将大字符串分配给变量。在源代码中,我最好将行数控制在 80 个字符以内。

理想情况下,我希望能够将这些文字字符串放在多行上。

我想要避免的是使用串联或函数调用(例如 preg_replace())将多个字符串连接在一起。我不喜欢必须调用语言功能才能改进代码风格的想法。

我想要的示例:

    $text = <<<TEXT
Line 1
Line 2
Line 3
TEXT;
    echo($text);

这应该输出:

Line1Line2Line3

这可能吗?

最佳答案

有几个选项:

  1. 只需连接(首选)

  2. 使用数组构造

  3. 使用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/

相关文章:

php - 在 PHP 中解析 SEF url 中的数值

Java(字符串)——它有什么作用?

coding-style - 我应该在快速原型(prototype)制作时关注代码质量吗?

html - MVC2 Html 助手

php - 如何从数组中获取所有最接近的匹配字符串?

php - 实现回合制网页游戏

PHP strpos函数与 "../"文件目录系统冲突

javascript - jQuery拆分数组问题

php - 使用 Web 服务上的 php session 识别 android httpclient

c++ - 使用数组而不是 std::vector 的优点?