2011-03-10 24 views
27

Heredoc examples de PHP siempre parecen usar EOT (y, a veces EOD) como la secuencia de separación, mientras que en realidad es posible utilizar cualquier cadena aquí. Esto funciona:Heredoc: ¿qué significa realmente el término 'EOT'?

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

Aunque esto funciona así:

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

¿Tiene EOT realidad significan algo y si es así, ¿qué?

+1

"Fin del texto" o tal vez "Fin de la cinta" (de los viejos tiempos cuando el uso de cintas para el almacenamiento de datos era estándar)? – Czechnology

Respuesta

19

Es sinónimo de "Final del texto"

+0

¿El * principio * del texto no sería mucho más lógico? :) Además, ¿qué significa EOD, entonces? –

+6

"Fin de documento/datos" –

+7

No, ya que marca el final. Lo que ves en la parte superior es una señal para continuar hasta que se detecta EOT. EOD es Fin de Datos. – Quentin

11

En realidad end of text habría ETX -. EOT es end of transmission.

Referencia: ASCII - Wikipedia

+0

Oh, Dios mío, estoy tan confundido: final del texto o al final de la transmisión ????? –

+0

¡Estás equivocado! Significa [Fin de la cinta] (https://en.wikipedia.org/wiki/EOT). –

+0

@ NisseEngström https://en.wikipedia.org/wiki/End-of-tape redirigir a fin de archivo y es 'EOF'. – Fleshgrinder

4

prefiero ir para la referencia y el uso de TRON 'EOL' (fin de línea).

+0

Esto es gracioso. Lo marcaría como favorito si pudiera. :RE – scrfix

0

La abreviatura EOT significa "fin de texto".

0

Respuesta corta

ProbablementeE nd O f T ext y E nd O f D ATA.

Respuesta larga

Los únicos que pueden decir que definitivamente lo que significan las siglas son los autores de la documentación original (y actual). Pero basado en un early version of the documentation que menciona "aquí doc texto", creo que uno podría suponer plausiblemente que EOT está destinado a significar Fin de Texto.

Del mismo modo, el current documentation hace una comparación entre NowDocs y SGML <![CDATA[ ]]> secciones, por lo que una suposición razonable sería que EOD significa End Of datos.

Claro, hay una definición de EOT en el ASCII standard, sino que hace referencia a un personaje único 04 y esta definición no se transfiere a cualquier otra cosa menos que se indique de forma explícita. Acerca de lo único que podemos aprender del estándar ASCII en este sentido es la codificación de tres letras E, O y T.

Esto es todo una conjetura, por supuesto, pero estas son las únicas explicaciones sensatas que se me ocurren. Personalmente, prefiero evitar todo el problema utilizando un guión bajo único (<<<_).

Cuestiones relacionadas