Sintaxis alternativa
PHP Manual
PHP Manual»Estructuras de Control»Sintaxis alternativa

(PHP 4, PHP 5, PHP 7, PHP 8)

PHP ofrece otra manera de agrupar instrucciones dentro de un bloque, para las funciones de control if, while, for, foreach y switch. En cada caso, el principio es reemplazar la llave de apertura por dos puntos (:) y la llave de cierre por, respectivamente, endif;, endwhile;, endfor;, endforeach;, o endswitch;.

<?php
$a = 5;
if ($a == 5): ?>
A igual 5
<?php endif; ?>

El ejemplo anterior mostrará:

A igual 5

En el ejemplo anterior, el bloque HTML "A igual 5" se incluye dentro de un if utilizando esta nueva sintaxis. Este código HTML solo se mostrará si la variable $a es igual a 5.

Esta otra sintaxis también funciona con else y elseif. El siguiente ejemplo muestra una estructura con un if, un elseif y un else utilizando esta otra sintaxis:

<?php
$a = 5;
if ($a == 5):
    echo "a igual 5";
    echo "...";
elseif ($a == 6):
    echo "a igual 6";
    echo "!!!";
else:
    echo "a no vale ni 5 ni 6";
endif;

El ejemplo anterior mostrará:

a igual 5...

Nota:

No se puede utilizar diferentes sintaxis en el mismo bloque de control.

Advertencia

Cualquier visualización (incluyendo espacios) entre una estructura switch y el primer case producirá un error de sintaxis. Por ejemplo, esto no es válido:

<?php
$foo = 1;
switch ($foo): ?>
    <?php case 1: ?>
    Foo vale 1
<?php endswitch; ?>

El ejemplo anterior mostrará:

Parse error: syntax error, unexpected T_INLINE_HTML "    ", expecting "endswitch" or "case" or "default" in script on line 4

Mientras que esto es válido, ya que la última nueva línea después de la estructura switch se considera parte de la etiqueta de cierre ?> y, por lo tanto, no se muestra nada entre switch y case:

<?php
$foo = 1;
switch ($foo): ?>
<?php case 1: ?>
    Foo vale 1
<?php endswitch; ?>

El ejemplo anterior mostrará:

    Foo vale 1

Ver también while, for, y if para otros ejemplos.

To Top