difference entre if,elseif et switch

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : difference entre if,elseif et switch

par caroube » 15 avr. 2008, 16:51

je préfère le switch moi..
Quand on peut, oui ... Pour de la lisibilité et de la maintenabilité : si tu décides que la variable $i doit maintenant s'appeler $unautrenom, la correction sera plus facile à effectuer et moins sujette à erreur de frappe.

Maintenant, il y a des cas où on ne peut pas utiliser switch et là, faut bien passer par if ... elseif ...

par Berzemus » 15 avr. 2008, 16:45

je préfère le switch moi..

par caroube » 15 avr. 2008, 16:42

La différence, c'est que le switch travaille sur la même variable tandis que le if elseif travaille sur des variables différentes (il peut faire sur la même variable parce qui peut le plus peut le moins)
if ($jour == lundi) {
  echo "Au boulot !";
} elseif ($mois == "janvier") {
  echo "Bonne Année !";
} elseif ($temperature == 40) {
  echo "Attention canicule !";
}
Sur le switch, il est également possible de tester plusieurs valeurs :
switch ($i) { 
case 0: 
    echo "i égale 0"; 
    break; 
case 1: 
    echo "i égale 1"; 
    break; 
case 2: 
case 3: 
    echo "i égale 2 ou 3"; 
    break; 
default:
  echo "i égale le reste"
  break;
} 
Par contre, tu ne pourras pas tester d'intervalle avec switch et dans ce cas, il faut utiliser if ... elseif
if ($i < 0) {
  echo "i negatif";
} elseif ($i <10) {
  echo "i inférieur à 10";
} elseif ($i ==11) {
  echo "i égale à 11";
} else {
  echo "i supérieur à 11";
}
Mais dans ce cas, attention à l'ordre de test.
if ($i < 10) {
  echo "i inférieur à 10";
} elseif ($i < 0) {
  echo "i negatif"; //Branche morte ...
} elseif ($i ==11) {
  echo "i égale à 11";
} else {
  echo "i supérieur à 11";
}

difference entre if,elseif et switch

par hakazizi » 15 avr. 2008, 15:56

Jai récupere ses exemple dans le tuto pour illustrer ma question
qu'elle difference y a t-il entre les deux car il y a autant de ligne sur l'un que sur l'autre.
<?php
if ($i == 0) {
    echo "i égale 0";
} elseif ($i == 1) {
    echo "i égale 1";
} elseif ($i == 2) {
    echo "i égale 2";
}
?> 
<?php
switch ($i) {
case 0:
    echo "i égale 0";
    break;
case 1:
    echo "i égale 1";
    break;
case 2:
    echo "i égale 2";
    break;
}
?>