elseif, como seu nome sugere, é uma combinação de if e else. Da mesma forma que o else, ele estende um comando if para executar uma instrução diferente no caso de a expressão if original ser avaliada como FALSE. Porém, ao contrário de else, ele executará aquela expressão alternativa somente se a expressão condicional do elseif for avaliada como TRUE. Por exemplo, o código a seguir mostraria 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 b";
}
?>
Podem haver vários elseifs dentro da mesma instrução if. A primeira expressão elseif (se houver) que for avaliada como TRUE será executada. No PHP, você também pode escrever 'else if' (em duas palavras) e o comportamento será idêntico a um 'elseif' (em uma só palavra). O significado sintático é ligeiramente diferente (se você está familiarizado com C, eles tem o mesmo comportamento), mas no final das contas ambos teriam exatamente o mesmo comportamento.
O comando elseif só é executado se a expressão if precedente e quaisquer expressões elseif anteriores forem avaliadas como FALSE, e a expressão elseif atual for avaliada como TRUE.
Nota: Note que elseif e else if somente será considerado exatamente o mesmo quando usando chaves com no exemplo acima. Quando usando dois pontos para definir sua condição if/elseif, você não deve separar else if em duas palavras, ou o PHP falhará com um parse error.
<?php
/* Método incorreto: */
if($a > $b):
echo $a." is greater than ".$b;
else if($a == $b): // Não compilará.
echo "The above line causes a parse error.";
endif;
/* Método correto: */
if($a > $b):
echo $a." is greater than ".$b;
elseif($a == $b): // Note a combinação das palavras.
echo $a." equals ".$b;
else:
echo $a." is neither greater than or equal to ".$b;
endif;
?>