Heredoc: what does the commonly used 'EOT' actually mean?

落爺英雄遲暮 提交于 2021-02-06 14:20:53

问题


PHP's Heredoc examples always seem to use EOT (and sometimes EOD) as the seperating string, while it is actually possible to use any string here. This works:

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

While this works as well:

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

Does EOT actually stand for something and if so, what?


回答1:


​It stands for "End Of Text".​




回答2:


Actually end of text would be ETXEOT is end of transmission.

Reference: ASCII - Wikipedia




回答3:


I prefer to go for the TRON reference and use 'EOL' (End of Line).




回答4:


Short answer

Probably End Of Text and End Of Data.

Long answer

The only ones who can tell you definitively what the acronyms mean are the authors of the original (and current) documentation. But based on an early version of the documentation which mentions "here doc text", I think one could plausibly assume that EOT is intended to mean End of Text.

Similarly, the current documentation makes a comparison between Nowdocs and SGML <![CDATA[ ]]> sections, so a reasonable assumption would be that EOD stands for End Of Data.

Sure, there's a definition of EOT in the ASCII standard, but that refers to a single character 0416 and this definition doesn't transfer to anything else unless explicitly stated. About the only thing we can learn from the ASCII standard in this regard is the encoding of the three letters E, O and T.

This is all guesswork of course, but these are the only sensible explanations I can think of. Personally, I prefer to avoid the whole issue by using a single underscore (<<<_).



来源:https://stackoverflow.com/questions/5258533/heredoc-what-does-the-commonly-used-eot-actually-mean

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!