Respuesta
Eso es la sintaxis heredoc. Empiezas una cadena heredoc poniendo <<<
más un token de tu elección, y lo terminas poniendo solo el token (¡y nada más!) En una nueva línea. Para su comodidad, hay una excepción: se le permite agregar un solo punto y coma después del delimitador final.
Ejemplo:
echo <<<HEREDOC
This is a heredoc string.
Newlines and everything else is preserved.
HEREDOC;
¿Cuál es la diferencia entre esto y una cadena normal? ¿Por qué no simplemente 'echo? Esto es un heredoc ....." ' – CodyBugstein
@Imray por lo que puedo recordar, puede poner comillas simples y dobles en el heredoc, así como las variables y todo va a funcionar. Si desea utilizar comillas dobles en su declaración 'echo', tendría que escapar de ellas. Aún así, dejé de usar heredoc poco después de comenzar, porque no me gustaba romper mis patrones de sangría. Ahora formé muchas de mis cadenas como matrices que luego 'implosionan (" \ n ", $ string_array)'. –
Yo diría que es muy útil si quieres inyectar diferentes idiomas. Ser capaz de utilizar líneas nuevas sin concatenación (que podría romper la finalización del código, etc.) es realmente agradable. – SourceOverflow
Es el comienzo de una cadena que utiliza el HEREDOC syntax.
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.
Genial, no lo sabía ... Leí el enlace que me enviaste y, sinceramente, entiendo por qué ¡Podría vivir sin eso hasta ahora! ;) ¿Cuál sería la ventaja de usar eso para una cadena? – Gabriel
@Gabriel le permite usar ambos tipos de citas dentro de la cadena sin romperla: '<<< END ¡Hola," $ nombre "! ¿Cómo está '$ esposo' hoy?END 'Un gran dolor en el culo es, sin embargo, que el marcador' END 'no debe estar sangrado, por lo que el contenido de Heredoc generalmente rompe la sangría de su código. De hecho, no es realmente una de las características más importantes de PHP :) –
@YiJiang que en realidad se debió a la localización alemana. Maldita geolocalización, siempre me da el enlace equivocado, aunque el inglés es el idioma de mi navegador. Corrected, cheers :) –
Es la heredoc syntax.
$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;
Esto se llama un heredoc, y que le permite hacer un largo trozo de texto que va en varias líneas. Puedes poner variables PHP allí y reemplazarán con el valor. La palabra GRÁFICO puede ser cualquier cosa. Simplemente tiene que ser el mismo para comenzar y detenerse donde comienza el texto citado.
Puede hacer lo mismo agregando varias cadenas entre comillas, pero esto es más limpio la mayor parte del tiempo para documentos extendidos como este texto HTML. También hay algo llamado nowdoc que es como una cadena de comillas simples en PHP, pero estas no le permitirán usar variables dentro de ellas.
Oh bien, gracias. en lugar de buscar por mucho tiempo, pensé que simplemente haría una pregunta rápida – user1464971
Es un heredoc, para cadenas largas que no tiene que preocuparse por comillas y otras cosas. Si observa la palabra TABLA y luego hay una línea que dice TABLA ;, que indica el final de la cadena.
Lo importante que debe recordar al usar este formato es que cualquiera que sea la cadena que use para definir el final de la cadena (como CHART en este caso), esa palabra debe aparecer en una línea propia, seguida de una punto y coma, y NO pueden aparecer caracteres después del punto y coma en la misma línea, incluso el espacio en blanco, de lo contrario, PHP piensa que es parte de la cadena.
- 1. ¿Qué significa << representa en python?
- 2. Php ¿qué significa <<<?
- 3. expresión PHP <<< EOB
- 4. <? Php en lugar de <?
- 5. ¿Qué significa '<? =' En PHP?
- 6. <? o <? php --- ¿hay alguna diferencia?
- 7. PHP usando Gettext dentro de <<< string EOF
- 8. Diferencia entre <? Php y <?
- 9. ¿Qué significa << hacer en Python?
- 10. ¿Qué significa "<< -" en Ruby?
- 11. Escapando literalmente <? Php y <? en un script PHP
- 12. ¿Qué significa el operador de Bash <<<?
- 13. ¿Qué significa este símbolo en PHP <? =
- 14. ¿Qué hace (1U << X)?
- 15. <% $, <% @, <% =, <% # ... ¿cuál es el problema?
- 16. ¿Qué significa <? = Mean?
- 17. cout << stringstream
- 18. PHP permitirá <?= ?>
- 19. <: <operador en scala
- 20. <script></script> o <script />?
- 21. Php <? etiquetas en WAMP
- 22. EJS: <% = versus <% -
- 23. ¿Cómo funciona <: <?
- 24. Accediendo a la variable definida dentro de <<< HTML en php
- 25. ¿Cuál es el uso de <<< EOD en PHP?
- 26. operator << overloading ostream
- 27. Operador de PHP <>
- 28. ¿Qué significa ">>" y "<<" en Javascript?
- 29. ¿Qué significa class_eval << - "end_eval", __FILE__, __LINE__ en Ruby?
- 30. ¿Qué está haciendo el operador << en C++?
Puede leer la documentación de PHP en la sintaxis [Heredoc] (http://www.php.net/manual/en/language.types.spa.php#language.types.string.syntax.heredoc) para una mejor entendimiento. –
Si necesita algún otro símbolo explicado, [esta es una buena referencia] (http://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean-in-php) – Wrikken
http: // stackoverflow.com/questions/5673269/what-is-the-advantage-of-using-heredoc-in-php – zloctb