Heredoc不在单独的行中打印文本
Posted
技术标签:
【中文标题】Heredoc不在单独的行中打印文本【英文标题】:Heredoc not printing text in separate lines 【发布时间】:2021-11-06 10:45:48 【问题描述】:<?php
echo <<<EOT
First
Second
Third
EOT;
?>
输出:第一第二第三
输出不应该是这样吗-
第一
第二
第三
?
如果不是,那么heredoc
的用途是什么?它与双引号字符串有何不同?
【问题讨论】:
【参考方案1】:脚本正在输出
First
Second
Third
但浏览器会将其解释为 html 文档,并且默认情况下会换行。改成
<?php
echo <<<EOT
First
<br>
Second
<br>
Third
EOT;
?>
你会得到你期望的结果。
它与双引号字符串有何不同?
Heredocs 可以更轻松地处理包含嵌套引号的字符串,因为您不必对它们进行转义。这在创建带有属性的 HTML 元素时特别方便。比较:
echo "<a href=\"$url\">Some text</a>";
与
echo <<<EOT
<a href="$url">Some text</a>
EOT;
(是的,我知道你也可以通过在$url
周围加上单引号来解决这个问题——剥猫皮的方法有很多。)
【讨论】:
浏览器的任何替代品,我可以运行 php 脚本,这样它就不会被视为 html 文档? 只需从 CLI 运行php scriptname.php
,您就会在终端上看到输出。
你也可以使用ideone.com。以上是关于Heredoc不在单独的行中打印文本的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 FileOutputStream 将 HashMap 分隔到单独的行中? [复制]