(PHP 4, PHP 5, PHP 7, PHP 8)
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 ?>