Sintaxis alternativa de estructuras de control

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

PHP ofrece una sintaxis alternativa para algunas de sus estructuras de control, a saber: if, while, for, foreach, y switch. En cada caso, la forma básica de la sintaxis alternativa es cambiar la llave de apertura por dos puntos (:) y la llave de cierre por endif;, endwhile;, endfor;, endforeach;, o endswitch;, respectivamente.

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

En el ejemplo anterior, el bloque HTML "A es igual a 5" está anidado dentro de una sentencia if escrita en la sintaxis alternativa. El bloque HTML se mostraría solamente si $a es igual a 5.

La sintaxis alternativa también se aplica a else y elseif. La siguiente es una estructura if con elseif y else en el formato alternativo:

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

Nota:

No se admite la mezcla de sintaxis en el mismo bloque de control.

Advertencia

Cualquier salida (incluyendo espacios en blanco) entre una sentencia switch y el primer case resultará en un error de sintaxis. Por ejemplo, esto no es válido:

<?php switch ($foo): ?>
    <?php case 1?>
    ...
<?php endswitch ?>

Mientras que lo siguinte es válido, ya que la nueva línea al final después de la sentencia switch es considerada como parte del ?> de cierre, no generando nada entre el switch y el case:

<?php switch ($foo): ?>
<?php 
case 1?>
    ...
<?php endswitch ?>

Véase también while, for e if para más ejemplos.

add a note add a note

User Contributed Notes 1 note

up
0
johannes dot kingma at gmail dot com
18 days ago
The alternative control syntax can be combined elegantly with the short php notation <?- => for output where both blend in into the html code

    <ul>
    <?php for($counter=0; $counter<10; $counter++) :?>
        <li id="itm-<?=$counter?>">Item <?=$counter?>
    <?php endfor;?>
    </ul>

(Btw. ommiting the </li> is perfectly legal)
To Top