Les structures de contrôle
PHP Manual

elseif/else if

(PHP 4, PHP 5, PHP 7)

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, vous pouvez aussi écrire "else if" en deux mots et son comportement sera identique à la version en un seul mot. La sémantique des deux expressions est légèrement différente, 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 votre condition if/elseif, vous ne devez pas séparer else if en deux mots, sans quoi PHP soulèvera une erreur d'interprétation.

<?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;


/* 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;

?>


Les structures de contrôle
PHP Manual