PHP中的这种语法是什么?

时间:2010-02-25 12:06:14

标签: php syntax

$test= <<<EOF

....

EOF;

我以前从未见过它。它用于什么?

4 个答案:

答案 0 :(得分:13)

这称为 HEREDOC syntax ,这是一种通过变量插值在多行上定义字符串的方法。


引用手册页:

  

Heredoc文本的行为就像一个   双引号字符串,没有   双引号。这意味着报价   在heredoc中不需要   转义,但列出了转义码   以上仍然可以使用。变量是   扩大,但必须同样谨慎   在表达复杂时采取   heredoc中的变量与   字符串。

(还有更多要阅读,我没有从手册页复制粘贴)


而且,作为一个非常简单的例子:

$a = 'World';
$string = <<<MARKER
<p>
  Hello, $a!
</p>
MARKER;
echo $string;

它将为您提供此输出:

Hello, World!

这个HTML源代码:

<p>
  Hello, World!
</p>

答案 1 :(得分:0)

那将是Heredoc

答案 2 :(得分:0)

http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

  

块引用   分隔字符串的第三种方法是heredoc语法:&lt;&lt;&lt;。在此运算符之后,提供标识符,然后提供换行符。字符串本身跟随,然后再次使用相同的标识符来关闭引用。

     

结束标识符必须从该行的第一列开始。此外,标识符必须遵循与PHP中任何其他标签相同的命名规则:它必须仅包含字母数字字符和下划线,并且必须以非数字字符或下划线开头。

答案 3 :(得分:0)

实际上,这是Heredoc语法。

万一你想知道它对常规字符串分隔符有什么兴趣:

// These strings contain the same thing '"'"
$s1 = '\'"\'"';
$s2 = "'\"'\"";
$s3 = <<<EOS
'"'"
EOS

没有更多的报价逃避 对我来说,一个典型的用例是当我需要在字符串中存储一些我已复制/粘贴的HTML代码时。