2009-06-26 30 views
17

he estado desarrollando con PHP desde hace algunos años, y recientemente se encontró con este código:expresión PHP <<< EOB

<?php 
    echo <<<EOB 
     <html> 
     <head> 
      <title>My title</title> 
     </head> 
     ... 
    EOB; 
?> 

nunca he visto este método para imprimir HTML, que parece ser bastante útil y menos propenso a algún error de sintaxis de variable doble o doble cita.

He buscado información oficial sobre esto y he encontrado una publicación de Rasmus hablando de esto.

¿Qué es una explicación detallada acerca de esta funcionalidad y qué significa EOB? Tal vez final del bloque?

+0

Lo raro de este código es que podría haber salido del modo solo PHP y logrado lo mismo. – jmucchiello

Respuesta

28

Esto se conoce como sintaxis heredoc. La documentación le dirá todo lo que necesita saber.

Esencialmente, sin embargo:

Una tercera forma de delimitar cadenas es la sintaxis heredoc: < < <. Después de este operador, se proporciona un identificador, luego una nueva línea. La cadena en sí sigue, y luego el mismo identificador nuevamente para cerrar la cita.

El identificador de cierre debe comenzar en la primera columna de la línea. Además, el identificador debe seguir las mismas reglas de denominación que cualquier otra etiqueta en PHP: debe contener solo caracteres alfanuméricos y guiones bajos, y debe comenzar con un carácter que no sea un dígito o un guión bajo.

Así que EOB es exactamente lo que el autor eligió como su delimitador, no muy seguro de lo que representa en su caso, pero el identificador puede ser lo que desee.

+5

Supongo que "fin de bloque" :). – ryanulit

+0

Tiene sentido. :) –

+0

Siempre me he preguntado, ¿se pronuncia "aquí - dock"? – Sampson

2

El término oficial es 'aquí documento', creo, generalmente abreviado como 'heredoc'.

+0

Gracias por la pronunciación etimología :) – Philip

0

Esto se llama sintaxis heredoc. Te permite tratar grandes bloques de texto como una cadena. Permite nuevas líneas también. Las variables se pueden insertar en el bloque de texto, al igual que con las comillas dobles para las cadenas.

Una explicación más útil se puede encontrar en la propia web de PHP: http://php.net/manual/en/language.types.string.php