Home » Php » php – Heredoc: what does the commonly used 'EOT' actually mean?

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

Posted by: admin April 23, 2020 Leave a comment


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

While this works as well:

$mystring = <<<MONKIES

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

How to&Answers:

​It stands for “End Of Text”.​


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

Reference: ASCII – Wikipedia


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


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 (<<<_).


The abbreviation EOT stands for “end of text”.