38

PHP 的Heredoc 示例似乎总是使用 EOT(有时是 EOD)作为分隔字符串,而实际上这里可以使用任何字符串。这有效:

$mystring = <<<EOT
     Foo
     Bar
     Baz
EOT;

虽然这也有效:

$mystring = <<<MONKIES
     Foo
     Bar
     Baz
MONKIES;

EOT真的代表什么吗?如果是,是什么?

4

4 回答 4

29

​它代表“文本结束”。​</p>

于 2011-03-10T10:45:17.307 回答
15

实际上end of text会是ETX——EOTend of transmission

参考:ASCII - 维基百科

于 2013-04-29T22:15:31.323 回答
7

我更喜欢参考 TRON 并使用“EOL”(行尾)。

于 2013-12-05T20:30:42.673 回答
7

简短的回答

可能是 E nd O f T ext 和E nd O f Data

长答案

唯一能明确告诉您首字母缩略词含义的是原始(和当前)文档的作者。但是基于早期版本的文档中提到“这里是文档文本”,我认为可以合理地假设EOT的意思是 End of Text

同样,当前文档对 Nowdocs 和 SGML 部分进行了比较<![CDATA[ ]]>,因此合理的假设是EOD代表 End Of Data

当然,ASCII 标准中有 EOT 的定义,但它指的是单个字符0416,除非明确说明,否则此定义不会转移到其他任何内容。在这方面,我们可以从 ASCII 标准中学到的唯一一件事就是三个字母的编码EOT

当然,这都是猜测,但这是我能想到的唯一合理的解释。就个人而言,我更喜欢通过使用单个下划线 ( <<<_) 来避免整个问题。

于 2018-03-06T14:33:44.750 回答