## 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";
    }
    ?>

Il est possible d'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 à celui 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 le `elseif` est évalué à `true`.

> Note: À 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. Lors de l'utilisation de ":" pour définir les 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." n'est ni plus grand ni égal à ".$b;
    endif;

    ?>

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open