2009-06-26 151 views
17

我一直在用PHP一些年来发展,最近遇到这样的代码来:PHP表达<<< EOB

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

我从来没有见过这种方法来打印HTML,这似乎是相当有用,不太容易出现一些奇怪的变量或双引号语法错误。

我已经搜索了一些有关这方面的官方信息,只发现了一篇关于这个Rasmus的文章。

什么是关于这个功能的详细解释和EOB是什么意思?也许块尾

+0

有什么奇怪的这段代码是它可能只是退出PHP模式,并完成了同样的事情。 – jmucchiello 2009-06-30 00:22:25

回答

28

这就是所谓的heredoc语法。该文件将告诉你你需要知道的一切。

本质,但是:

分隔字符串的第三种方法是定界符:< < <。在这个操作符之后,提供了一个标识符,然后是一个换行符。字符串本身遵循,然后再次使用相同的标识符来关闭引用。

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

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

+5

我猜“结束块”:)。 – ryanulit 2009-06-26 11:10:43

+0

有道理。 :) – 2009-06-26 11:12:06

2

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

0

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

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