gpt4 book ai didi

php - 最佳实践 : working with long, PHP 中的多行字符串?

转载 作者:IT老高 更新时间:2023-10-28 11:42:13 25 4
gpt4 key购买 nike

注意:如果这是一个非常简单的问题,我很抱歉,但我对我的代码格式有点强制症。

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

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将具有值 "My $var" ,而不是 "My foo" .

注意事项:

  • 收盘前EOT;不应有空格或制表符。否则会报错。
  • 包围文本的字符串/标签(EOT)是任意的,也就是说,可以使用其他字符串,例如<<<FOOFOO;
  • EOT:传输结束,EOD:数据结束。 [ Q ]

关于php - 最佳实践 : working with long, PHP 中的多行字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1848945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com