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";
}
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)
[php]
if ($jour == lundi) {
echo "Au boulot !";
} elseif ($mois == "janvier") {
echo "Bonne Année !";
} elseif ($temperature == 40) {
echo "Attention canicule !";
}
[/php]
Sur le switch, il est également possible de tester plusieurs valeurs :
[php]
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;
}
[/php]
Par contre, tu ne pourras pas tester d'intervalle avec switch et dans ce cas, il faut utiliser if ... elseif
[php]
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";
}
[/php]
Mais dans ce cas, attention à l'ordre de test.
[php]
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";
}
[/php]