【发布时间】:2021-11-06 10:45:48
【问题描述】:
<?php
echo <<<EOT
First
Second
Third
EOT;
?>
输出:第一第二第三
输出不应该是这样吗-
第一
第二
第三
?
如果不是,那么heredoc 的用途是什么?它与双引号字符串有何不同?
【问题讨论】:
<?php
echo <<<EOT
First
Second
Third
EOT;
?>
输出:第一第二第三
输出不应该是这样吗-
第一
第二
第三
?
如果不是,那么heredoc 的用途是什么?它与双引号字符串有何不同?
【问题讨论】:
脚本正在输出
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 scriptname.php,您就会在终端上看到输出。