PHP表达式<<

时间:2009-06-26 10:53:08

标签: php html heredoc

我已经用PHP开发了几年了,最近发现了这段代码:

<?php
    echo <<<EOB
        <html>
        <head>
            <title>My title</title>
        </head>
        ...
    EOB;
?>

我从未见过这种打印HTML的方法,这看起来非常有用,并且不太容易出现一些奇怪的变量或双引号语法错误。

我已经搜索了一些关于此的官方信息,并且只发现了Rasmus谈论此事的帖子。

有关此功能的详细说明以及EOB的含义是什么?也许块结束

5 个答案:

答案 0 :(得分:28)

这称为heredoc语法。文档将告诉您需要知道的一切。

基本上,然而:

  

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

     

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

所以EOB正是作者选择作为他的分隔符,不是很确定它在他的情况下代表什么,但标识符可以是你想要的任何东西。

答案 1 :(得分:6)

仅仅为了完整起见,PHP中的Heredoc继承自Perl,它本身从Bourne shell继承了它。

答案 2 :(得分:3)

它被称为heredoc,在manual中有描述。

答案 3 :(得分:2)

官方用语是'here document'我相信,通常缩写为'heredoc'。

答案 4 :(得分:0)

这称为heredoc语法。它允许您像字符串一样处理大块文本。它也允许换行。变量可以插入到文本块中,就像使用字符串的双引号一样。

可以在PHP自己的网站上找到更有用的解释:http://php.net/manual/en/language.types.string.php