2

我已经看到嵌套在 PHP 页面中的 HTML 以多种方式编写...其中一些在此页面中进行了演示: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 方法是否存在我应该注意的基本问题?

4

3 回答 3

5

这称为heredoc 语法(“EOF”可以是任何标识符,而不仅仅是“EOF”)。它比其他字符串语法更挑剔一些,对于以前没有遇到过它的人来说可能会有点困惑。不过,使用起来非常好。

于 2012-05-01T20:44:23.600 回答
5

如果您正在构建 HTML 并需要嵌入变量,Heredocs 非常棒。

它们尊重您嵌入其中的换行符/间距(即使浏览器不显示),因此构建格式良好的 HTML 会容易得多,并且还可以让您在构建字符串时无需转义引号:

例如比较

print("<div class=\"this\">\n\tblah blah\n\t\t<span class=\"that\">blah</span>\n</div>");

对比

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 的标记值必须单独在一行,所以没有办法制作“单行”heredoc。

于 2012-05-01T20:51:38.547 回答
2

Heredoc语法实际上很棒!这对于您有大量单引号和双引号的数据的情况非常有用。

在此之前,我已经介绍了它的一些细节: 引用引号

我发现它的缺点之一是它确实倾向于禁用编辑器中的语法突出显示,因为编辑器将其视为一个大字符串,因此不会正确突出显示内部的 html。

另一个缺点是无法从 heredoc 语法中直接调用函数。有一些变通方法,这里提到了其中的一些:在 HEREDOC 字符串中调用 PHP 函数

于 2012-05-01T20:48:14.503 回答