## elseif/else if

(PHP 4, PHP 5, PHP 7, PHP 8)

`elseif`, comme son nom l'indique, est une combinaison de `if` et de `else`. Comme l'expression `else`, il permet d'exécuter une instruction après un `if` dans le cas où le "premier" if est évalué comme `false`. Mais, à la différence de l'expression `else`, il n'exécutera l'instruction que si l'expression conditionnelle `elseif` est évaluée comme `true`. L'exemple suivant affichera a est plus grand que b, a est égal à b ou a est plus petit que b :

`<?php
if ($a > $b) {
echo "a est plus grand que b";
} elseif ($a == $b) {
echo "a est égal à b";
} else {
echo "a est plus petit que b";
}
?>`

Vous pouvez avoir plusieurs `elseif` qui se suivent les uns après les autres, après un `if` initial. Le premier `elseif` qui sera évalué à `true` sera exécuté. En PHP, il est possible d'écrire `else if` en deux mots et son comportement sera identique à celle de `elseif` (en un seul mot). La sémantique des deux expressions est légèrement différente (tout comme en C), mais au bout du compte, le résultat sera exactement le même.

L'expression `elseif` est exécutée seulement si le `if` précédent et tout autre `elseif` précédent sont évalués comme `false`, et que votre `elseif` est évalué à `true`.

> Note: A noter que `elseif` et `else if` sont traités de la même façon seulement quand des accolades sont utilisées, comme dans l'exemple ci-dessus. Quand vous utilisez ":" pour définir vos conditions `if`/`elseif`, l'utilisation de `elseif` en un seul mot devient nécessaire. PHP échouera avec une erreur d'analyse si `else if` est utilisé.

`<?php
/* Mauvaise méthode : */
if ($a > $b):
echo $a." est plus grand que ".$b;
else if ($a == $b): // ne compilera pas
echo "La ligne ci-dessus provoque une erreur d'interprétation";
endif;`
`<?php
/* Bonne méthode : */
if ($a > $b):
echo $a." est plus grand que ".$b;
elseif ($a == $b): // Les deux mots sont collés
echo $a." égal ".$b;
else:
echo $a." est plus grand ou égal à ".$b;
endif;
?>`