Blog de programación, errores, soluciones

Chose Language:
Author: Admin/Publisher |finished | checked

PHP heredoc y nowdoc

Antes de hablar de heredoc o nowdoc tenemos que saber que son diferentes formas de especificar un string en PHP, si talvez tendría que haber tocado este tema en las variables, pero sería algo bastante largo para que una persona lo lea entero de forma rápida.

Este post se me ocurrió al crear el articulo de la clase DOMDocument en PHP, que si es bastante largo pero esta echo de esa manera para que puedas encontrar lo que necesites saber de forma rápida lo que necesitas no espero que alguien se lea ese post por completo.

Contenido del Post:

PHP Heredoc

Heredoc es una de las formas en que puedes delimitar un string. Para usar heredoc debes empezar por <<< seguido de un identificador, luego de esto empezar una línea nueva y por último cerramos con el identificador y ; en otra línea nueva.

Es similar a poner comillas dobles.

Veamos como sería su sintaxis:

Sintaxis
<?php
<<<identificador
linea
identificador;

Tenga en cuenta que identificador; es el delimitador y por lo tanto debe ir todo junto.

Ejemplo simple:

heredocexample.php
$title = "otra pagina";
$h = <<<HTML
<head>
<title>$title</title>
</head>
<!-- blastcoding.com heredoc example -->
<body>
    <h1>$title</h1>
    este es un texto dentro de body
</body>
HTML;
echo $h;

Nowdoc

Nowdoc es muy similar a heredoc, excepto que en el identificador luego de <<< utilizamos comillas simples, el código dentro de nowdoc no será analizado de ninguna manera, por lo que será equivalente a escapar todo el código dentro de este.

Es similar a poner comillas simples.

Sintaxis
<?php
<<<'identificador'
linea
identificador;

mismo ejemplo pero con nowdoc:

nowdocexample.php
$title = "otra pagina";
$h = <<<'HTML'
<head>
<title>$title</title>
</head>
<!-- blastcoding.com nowdoc example -->
<body>
    <h1>$title</h1>
    este es un texto dentro de body
</body>
HTML;
echo $h;
Category: php
Something wrong? If you found an error or mistake in the content you can contact me on Twitter | @luisg2249_luis.
Last 4 post in same category