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 if ($a == 5): ?>
A igual 5
<?php endif; ?>

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
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;
?>

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 switch ($foo): ?>
<?php case 1: ?>
// ...
<?php endswitch; ?>

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 switch ($foo): ?>
<?php
case 1: ?>
...
<?php endswitch; ?>

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