$test= <<<EOF
....
EOF;
我以前从未见过它。它用于什么?
答案 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代码时。