elseif
/else if
(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 is bigger than
b, a equal to b
ou a is smaller than b:
<?php
if ($a > $b) {
echo "a is bigger than b";
} elseif ($a == $b) {
echo "a is equal to b";
} else {
echo "a is smaller than b";
}
?>
Pode haver vários elseif
s dentro da mesma declaraçã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, o comportamento
é o mesmo), mas, no fundo, 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
elseif
eelse if
só 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
, não deve-se separarelse if
em duas palavras, ou o PHP falhará com um erro de interpretação.
<?php
/* Incorrect Method: */
if ($a > $b):
echo $a." is greater than ".$b;
else if ($a == $b): // Will not compile.
echo "The above line causes a parse error.";
endif;
/* Correct Method: */
if ($a > $b):
echo $a." is greater than ".$b;
elseif ($a == $b): // Note the combination of the words.
echo $a." equals ".$b;
else:
echo $a." is neither greater than or equal to ".$b;
endif;
?>