(PHP 4, PHP 5)
PHP offre una sintassi alternativa per alcune delle sue strutture di controllo, ovvero: if, while, for, foreach, e switch. In ognuno di questi casi, l'approccio di base della sintassi alternativa è quello di cambiare la parentesi graffa aperta con il segno di duepunti (:) e la parentesi graffa chiusa rispettivamente con endif;, endwhile;, endfor;, endforeach;, o endswitch;.
<?php if ($a == 5): ?>
A è uguale a 5
<?php endif; ?>
Nell'esempio presentato, il blocco HTML "A è uguale a 5" è inserito all'interno in un blocco if scritto con la sintassi alternativa. Il blocco HTML sarà visualizzato solo se $a è uguale a 5.
La sintassi alternativa si applica nello stesso modo anche ad else e ad elseif. Quanto segue è un esempio della struttura if con sezioni elseif ed else nel formato alternativo:
<?php
if ($a == 5):
echo "a è uguale a 5";
echo "...";
elseif ($a == 6):
echo "a è uguale a 6";
echo "!!!";
else:
echo "a è diverso sia da 5 che da 6";
endif;
?>
Nota:
L'utilizzo delle due sintassi all'interno dello stesso blocco non è supportato.
Qualsiasi output (inclusi gli spazi bianchi) tra un'istruzione switch e il primo case risulterà in un errore sintattico. Per esempio, questo non è valido:
<?php switch ($foo): ?>
<?php case 1: ?>
...
<?php endswitch ?>
Mentre questo è valido, poichè la nuova riga dopo l'istruzione switch è considerata parte della chiusura ?> e quindi non viene scritto niente in output tra lo switch e il case:
<?php switch ($foo): ?>
<?php case 1: ?>
...
<?php endswitch ?>