array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'pt_BR', ), 'this' => array ( 0 => 'control-structures.alternative-syntax.php', 1 => 'Sintaxe Alternativa para estruturas de controle', ), 'up' => array ( 0 => 'language.control-structures.php', 1 => 'Estruturas de Controle', ), 'prev' => array ( 0 => 'control-structures.elseif.php', 1 => 'elseif/else if', ), 'next' => array ( 0 => 'control-structures.while.php', 1 => 'while', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'pt_BR', 'path' => 'language/control-structures/alternative-syntax.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
O PHP oferece uma sintaxe alternativa para algumas estruturas
de controle; a saber, if
,
while
, for
,
foreach
, e switch
.
Em cada caso, basicamente a sintaxe alternativa é trocar
a chave de abertura por dois pontos (:) e a chave de fechamento por
endif;
, endwhile;
,
endfor;
, endforeach;
, ou
endswitch;
, respectivamente.
<?php if ($a == 5): ?>
A é igual a 5
<?php endif; ?>
No exemplo acima, o bloco HTML "A é igual a 5" está dentro de um
if
escrito na sintaxe alternativa. O
bloco HTML será exibido somente se $a for igual a 5.
A sintaxe alternativa também se aplica ao else
e
elseif
. A seguir um exemplo de um
if
com elseif
e
else
no formato alternativo:
<?php
if ($a == 5):
echo "a equals 5";
echo "...";
elseif ($a == 6):
echo "a equals 6";
echo "!!!";
else:
echo "a is neither 5 nor 6";
endif;
?>
Nota:
Misturar a sintaxe no mesmo bloco de controle não é suportado.
Qualquer saída (inclusive espaços em branco) entre um switch
e o primeiro case
irá resultar em um erro de
sintaxe. O exemplo abaixo é inválido:
<?php switch ($foo): ?>
<?php case 1: ?>
...
<?php endswitch; ?>
Enquanto que este é válido, já que a quebra de linha depois do
switch
é considerado parte da tag de fechamento
?>
e, portanto, nenhuma saída será enviada entre o
switch
e case
:
<?php switch ($foo): ?>
<?php case 1: ?>
...
<?php endswitch; ?>