我已经看到HTML嵌套在以多种方式编写的PHP页面中......其中一些在本页面中展示: http://austingulati.com/2010/01/many-ways-to-integrate-html-into-php/
但是......我很少看到HTML和PHP一起编写如下:
echo <<<EOF
<h1>Welcome</h1>
<p>Hello</p>
<p>{$somePHPVariable}</p>
EOF;
使用EOF方法是否存在我应该注意的基本问题?
答案 0 :(得分:5)
这称为heredoc syntax(“EOF”可以是任何标识符,而不仅仅是“EOF”)。它比其他字符串语法更挑剔,对于之前没有遇到它的人来说可能有点混乱。但是,使用起来非常好。
答案 1 :(得分:5)
如果您正在构建HTML并且需要嵌入变量,那么Heredocs非常棒。
他们尊重您嵌入其中的换行符/间距(即使浏览器没有显示),因此构建格式良好的HTML更容易,并且还可以减轻构建字符串时转义引号的需要:< / p>
e.g。比较
print("<div class=\"this\">\n\tblah blah\n\t\t<span class=\"that\">blah</span>\n</div>");
v.s。
echo <<<EOL
<div class="this">
blah blah
<span class="that"</span>
</div>
EOL;
它们也可用于连接操作,例如
$x = "hello";
$x .= <<<EOL
there, how
EOL
$x .= <<<EOL
are you?
EOL;
最终会给$ x值hello there, how are you?
。基本上认为heredoc语法是双引号字符串的非常奇特的版本,没有任何缺点。唯一的限制是heredoc的sentinal值必须单独在一条线上,因此没有办法制作“一行”heredoc。
答案 2 :(得分:2)
Heredoc语法实际上很棒!它对于包含大量单引号和双引号的数据非常有用。
我在此之前已经了解了它的一些细节: Quoting quotation marks
我发现其中一个缺点是,它确实会在编辑器中禁用语法高亮,因为编辑器将其视为一个大字符串,因此无法在内部正确突出显示html。
另一个缺点是无法从heredoc语法中直接调用函数。有一些解决方法,其中一些在这里提到:Calling PHP functions within HEREDOC strings