<<< EOD在PHP中有什么用?


75

我正在使用drupal和tcpdf将节点实现为PDF。在这种情况下,我想使用此<<<EOD标签。如果我不给,这个o / p并不完美。我无法完全达到的目的<<<EOD

有人可以解释一下这个概念吗?

$html = <<<EOD
        <tr>
          <td>TEST</td>
        </tr>
EOD;

提前致谢....

Answers:


99

那不是HTML,而是PHP。它称为HEREDOC字符串方法,是使用引号编写多行字符串的替代方法。

您的示例中的HTML将是:

    <tr>
      <td>TEST</td>
    </tr>

阅读解释它的PHP文档


6
它也用于perl :)不要忘记这一点!
Samuele Mattiuzzo

1
字!+1。但是由于该问题被标记为PHP,所以我认为这是适当的。
2011年

34

PHP中有四种可用的字符串。它们是单引号('),双引号(“)和Nowdoc(<<<'EOD')和Heredoc(<<<EOD)字符串

您可以在heredoc字符串中使用单引号和双引号。变量将被扩展为双引号。

nowdoc字符串不会像单引号一样扩展变量。

参考:http : //www.php.net/manual/zh-CN/language.types.string.php#language.types.string.syntax.heredoc


6
EOD本身是什么意思?为什么有些人使用EOT?
CMCDragonkai 2013年

4
@CMCDragonkai好问题。看起来,这EOD没什么特别的,只要打开和关闭标签相似,您几乎可以在这里使用任何标签。如果您在此处查看更深入的示例(Example #),则会发现带有LABEL<<<LABEL+ LABEL;)和的示例FOOBAR。我也在DEL某些资料中找到了。如此看来,您可以随意使用任何东西。
trejder 2013年

1
我一直认为它的意思是“数据结束”
Sp4cecat 2013年

14
EOD =数据结尾,EOT =文本结尾。任意标签。
2014年

4
源自传统的EOF(文件结束)系统信号。在传统的计算文件中,磁带内容(通常是磁带内容)(因此是EOT,磁带结束或传输结束),因此受到威胁(流已经被EOS占用,因此EOD就是数据流的结尾),并从一个呼叫到另一个。后来在新闻组和电子邮件客户端上,假定该标记不会出现在正常对话中,则将该标记用于键入文本的结尾。它做了。主要在有关标准和类似DOC的语法的讨论中。到目前为止,某些CLI电子邮件客户端仍在使用它。计算的历史是美丽的。
cprn
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.