Post by Jean Francois OrtoloLa réponse donnée à la fin par le qcm à la 5ème question du 2ème qcm
est fausse.
le premier if est le seul a être exécuté.
Donc le qcm est faux.
elseif ne s'exécute pas si un précédent if s'est exécuté ( c'est le cas ).
Ah bon !
L'énoncé est :
$a=10;
if ($a<5) {
$a=20;
} elseif ($a<100) {
$a=500;
} elseif ($a<1000) {
$a=1;
} else {
$a=0;
}
print $a;
Le premier if n'étant pas vérifié (assertion fausse car $a n'est pas
inférieur à 5), toute la série des elseif sera exécutée jusqu'à trouver
une condition vérifiée, sinon le else final sera exécuté.
Relire : http://php.net/manual/fr/control-structures.elseif.php
où il est écrit :
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.
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.
--
Ce n'est pas parce qu'ils sont nombreux à avoir tort
qu'ils ont forcément raison. Coluche