PHP中的这种语法是什么?
答
这就是所谓的HEREDOC syntax,这是一种在多行上定义字符串,使用可变插值的方法。
引述手册页:
定界符文本表现的就像一个 双引号字符串,而 双引号。这意味着heredoc中的引号 不需要被 转义,但上面列出的转义码 仍然可以使用。变量是 已扩展,但在与hellooc中的 字符串一起表示复杂 变量时,必须采用 。
(还有更多的阅读,我没有从手册页复制粘贴)
而且,作为一个非常快速和简单的例子:
$a = 'World';
$string = <<<MARKER
<p>
Hello, $a!
</p>
MARKER;
echo $string;
它会给你这个输出:
Hello, World!
d这个HTML源代码:
<p>
Hello, World!
</p>
答
http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc
块引用 分隔字符串的第三种方法是定界符:< < <。在这个操作符之后,提供了一个标识符,然后是一个换行符。字符串本身遵循,然后再次使用相同的标识符来关闭引用。
结束标识符必须从行的第一列开始。此外,标识符必须遵循与PHP中任何其他标签相同的命名规则:它必须仅包含字母数字字符和下划线,并且必须以非数字字符或下划线开头。
答
确实,这是Heredoc语法。
以防万一你想知道它会不会有什么兴趣VS普通字符串分隔符:
// These strings contain the same thing '"'"
$s1 = '\'"\'"';
$s2 = "'\"'\"";
$s3 = <<<EOS
'"'"
EOS
没有更多报价逃逸。
对我来说,一个典型的用例是当我需要将一些HTML代码复制/粘贴到字符串中时。
你是什么意思*“嵌套案件”*? – 2010-02-25 12:14:27
这只是一种定义字符串而不必转义任何特殊字符的方法。它没有任何东西,真的,所以这个问题似乎有点奇怪。 – 2010-02-25 12:19:16
仅供参考NOWDOC是新的HEREDOC:http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.nowdoc – 2010-02-25 13:40:19