(PHP 4, PHP 5, PHP 7, PHP 8)
elseif, como o nome sugere, é uma combinação
do if e else. Como o
else, estende um if
para executar instruções diferentes no caso da expressão
if original ser avaliada como
false. Entretanto, diferentemente do
else, executará uma expressão alternativa
somente se a expressão condicional do elseif
for avaliada como true. Por exemplo, o código
a seguir exibirá a é maior que
b, a é igual a b
ou a é menor que b:
<?php
if ($a > $b) {
echo "a é maior que b";
} elseif ($a == $b) {
echo "a é igual a b";
} else {
echo "a é menor que b";
}
?>
Pode haver vários elseifs dentro da mesma instrução
if. A primeira expressão
elseif (se houver) que retornar
true será executada. No PHP, pode-se escrever
else if (em duas palavras), e o comportamento será idêntico
ao do elseif (em uma única palavra). O significado sintático
é um pouco diferente (se você está familiarizado com C, mas, no final,
ambos terão exatamente o mesmo comportamento.
O elseif só é executado se o
if precedente ou qualquer
elseif for avaliado como
false, e o elseif
corrente for avaliado como
true.
Nota: Note que o
elseifeelse ifsó serão considerados exatamente iguais se usados com chaves como no exemplo abaixo. Ao utilizar os dois pontos (:) para definir as condições deif/elseif, então o uso deelseifcomo uma única palavras se torna necessário, ou o PHP falhará com um erro de interpretação seelse ifestiver separado em duas palavras.
<?php
/* Método Incorreto: */
if ($a > $b):
echo $a." é maior que ".$b;
else if ($a == $b): // Não irá compilar.
echo "A linha acima causa um erro de análise.";
endif;<?php
/* Método Correto: */
if ($a > $b):
echo $a." é maior que ".$b;
elseif ($a == $b): // Note a combinação das palavras.
echo $a." é igual a ".$b;
else:
echo $a." não é maior nem igual a ".$b;
endif;
?>