在PHP中,是否可以连接Heredoc字符串?

15

使用普通的PHP字符串,你可以这样做:

$str = "Hello ";
$str .= "world";
$str .= "bla bla bla";
$str .= "bla bla bla...";

但是您能用Heredoc字符串做同样的事情吗?

$str = <<<EOD
Hello 
world
EOD;

$str .= <<<EOD
bla bla bla";
bla bla bla...";
EOD;

4
-1 真的,你可以自己测试一下。如果你没有本地的 PHP 安装,请在谷歌上搜索“在线执行 PHP 代码”... - NikiC
1
你真的应该自己弄清楚这个程序是否能运行,而不是去问SO。代码完全按照你发布的方式工作。实验是理解的关键。 - user229044
2
同意,我本可以测试这个问题...但是我在快速的谷歌搜索中找不到这些信息,而且我可能不是第一个或最后一个提出这个确切问题的人。现在,由于下面的答案,这些信息将很容易获得。 - pnichols
13
我同意提问者的观点。这是一个简单的是/否问题,通过Google搜索比实验更快,并且其他人也可以从中学习。我们并不都是以同样的方式学习,因此人们不应该期望对他们有效的方法适用于所有人。 - Marcus
2
好的,小问题。节省了我半分钟的测试时间,这很好。 - Alan
显示剩余3条评论
3个回答

21

当然可以,为什么不行呢?

Heredocs会被转化为字符串,因此这是完全可以接受的。


13

可以的。Heredoc 是表达式的一部分,所以你甚至可以这样做:

$s = 'abc' . <<<EOD
def
EOD
. 'ghi';

但是要小心数据结束标记:它应该是一行上唯一的内容。


10

是的,你可以。

一个heredoc等同于没有双引号的双引号字符串。


哎呀,所以在PHP中的heredoc不是字符串字面量。而在其他语言中通常是。 - Henk Poley
2
PHP也有这个功能,它被称为nowdoc - Adrian Wiik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接