当前位置: 首页 > 面试题库 >

最佳实践:在PHP中使用长的多行字符串吗?

楚茂实
2023-03-14
问题内容

注意:很抱歉,如果这是一个非常简单的问题,但是我对代码的格式有些执迷不已。

我有一个类,该类具有返回字符串的函数,该字符串将构成电子邮件的正文。我希望此文本经过格式化,以便它在电子邮件中看起来很正确,而且也不会使我的代码显得时髦。这就是我的意思:

class Something
{
    public function getEmailText($vars)
    {
        $text = 'Hello ' . $vars->name . ",

The second line starts two lines below.

I also don't want any spaces before the new line, so it's butted up against the left side of the screen.";
        return $text;
    }
}

但也可以写成:

public function getEmailText($vars)
{
    $text = "Hello {$vars->name},\n\rThe second line starts two lines below.\n\rI also don't want any spaces before the new line, so it's butted up against the left side of the screen.";
    return $text;
}

但是换行和退货有什么关系呢?有什么不同?是\n\n相当于\r\r\n\r?在行与行之间创建行距时应该使用哪个?

然后是输出缓冲和heredoc语法的选项。

您如何处理在对象中使用长的多行字符串?


问题答案:

您应该使用HEREDOC或NOWDOC。

$var = "some text";
$text = <<<EOT
  Place your text between the EOT. It's
  the delimiter that ends the text
  of your multiline string.
  $var
EOT;

Heredoc和Nowdoc之间的区别在于,将执行执行Heredoc中嵌入的PHP代码,而将按原样打印Nowdoc中的PHP代码。

$var = "foo";
$text = <<<'EOT'
  My $var
EOT;

在这种情况下,$ text将具有value My $var

注意: 结束前EOT;不应有空格或制表符。否则你会得到一个错误



 类似资料:
  • 问题内容: 即使将MySQL DB,表和字段的排序规则设置为utf8_general_ci,也经常发生将 é 等字符转换为 é的情况 。页面的 Content-Type中 的编码也设置为UTF8。 我知道utf8_encode / decode,但是我不确定在哪里以及如何使用它。 我已经阅读了“ 绝对是每个软件开发人员的绝对最低限度,肯定必须了解Unicode和字符集(无借口!) ”一文,但是我

  • PHP 是一门复杂的语言,经过多年折腾,使其不同版本之间高度不一致,有时还有些 bug。每个版本都有自己独有的特性、多余和怪异之处,也很难跟踪哪个版本有哪些问题。

  • 问题内容: 那么PHP中的大小可以达到多少呢?我已经尝试过测试,但是我不确定系统内存是否足够(〜2gb)。我认为必须有某种限制。字符串太大时会发生什么?它是串联的,还是PHP抛出异常? 问题答案: http://php.net/manual/en/language.types.string.php说: 注意:自PHP 7.0.0起,对64位版本中的字符串长度没有特殊限制。在32位版本和较早版本中,

  • 我有正在转换为 Dom4J 文档的 html 数据。 我遇到了一个错误: 这是一个角色” 在XML中,似乎我们需要转义5个字符:(gt,lt,quot,amp,apos) 然而,我如何转义它,而不将其转义到“节点”元素中: 应该给出: 而不是 谢谢你,

  • 引子 Rax 提供的长列表标签有很多,在什么场景下使用什么列表组件,怎样选择列表组件性能会更好,这些问题可能会给刚接触 Rax 的同学带来困扰。本文结合 Rax 0.5 发布版本对列表能力进行一次详细的梳理。 如何让页面滚动 在开始正题之前先说说为什么要有长列表的概念,以及如何让页面可以滚动。 传统的 Web 页面天生在浏览器里就是可以滚动的,我们额外引入一个滚动容器的概念好像比较多余。但当我们做

  • 问题内容: 我开发Joomla网站/组件/模块和插件,并且每隔一段时间我都需要使用JavaScript来加载页面时触发事件的功能。在大多数情况下,这是使用函数完成的。 我的问题是: 这是在页面加载时触发JavaScript事件的最佳方法,还是有更好/更新的方法? 如果这是触发页面加载事件的唯一方法,那么确保多个事件可以由不同的脚本运行的最佳方法是什么? 问题答案: 可以,但是您可能已经注意到, 它