J'ai une autre situation. J'ai une variable qui contient les valeurs ('Hebdomadaire', 'Mensuelle', 'Trimestrielle', 'Annuelle'), et j'ai une autre variable qui contient les valeurs de 1 à 10.
switch ($var2) {
case 1:
$var3 = 'Weekly';
break;
case 2:
$var3 = 'Weekly';
break;
case 3:
$var3 = 'Monthly';
break;
case 4:
$var3 = 'Quarterly';
break;
case 5:
$var3 = 'Quarterly';
break;
// etc.
}
Ce n'est pas beau, car mon code a beaucoup de doublons. Ce que je veux:
switch ($var2) {
case 1, 2:
$var3 = 'Weekly';
break;
case 3:
$var3 = 'Monthly';
break;
case 4, 5:
$var3 = 'Quarterly';
break;
}
Comment puis-je le faire en PHP? Merci d'avance. Désolé pour mon anglais.
la manière la plus simple et probablement la meilleure façon de procéder serait:
switch ($var2) {
case 1:
case 2:
$var3 = 'Weekly';
break;
case 3:
$var3 = 'Monthly';
break;
case 4:
case 5:
$var3 = 'Quarterly';
break;
}
également possible pour des situations plus complexes:
switch ($var2) {
case ($var2 == 1 || $var2 == 2):
$var3 = 'Weekly';
break;
case 3:
$var3 = 'Monthly';
break;
case ($var2 == 4 || $var2 == 5):
$var3 = 'Quarterly';
break;
}
dans ce scénario, $ var2 doit être défini et ne peut pas être nul ou 0
switch ($var2) {
case 1 :
case 2 :
$var3 = 'Weekly';
break;
case 3 :
$var3 = 'Monthly';
break;
case 4 :
case 5 :
$var3 = 'Quarterly';
break;
}
Tout ce qui suit le premier cas correspondant sera exécuté jusqu'à ce qu'une instruction break soit trouvée. Il passe donc directement au cas suivant, ce qui vous permet de "grouper" les cas.
Le commutateur est également très pratique pour les tests AB. Voici le code pour tester au hasard 4 versions différentes de quelque chose:
$abctest = mt_Rand(1, 1000);
switch ($abctest) {
case ($abctest < 250):
echo "A code here";
break;
case ($abctest < 500):
echo "B code here";
break;
case ($abctest < 750):
echo "C code here";
break;
default:
echo "D code here";
break;