Essayez avec ces exemples suivants dans cet article: http://phpswitch.com/
possibles cas de commutation:
(i). Une instruction de commutateur simple
L'instruction switch est merveilleuse et magique. C'est une partie du langage qui vous permet de choisir entre différentes options pour une valeur, et d'exécuter différents morceaux de code en fonction de la valeur définie.
Chaque option possible est donnée par un cas dans l'instruction switch.
Exemple:
switch($bar)
{
case 4:
echo "This is not the number you're looking for.\n";
$foo = 92;
}
(ii). blocs de code Délimitation
La caveat majeure du commutateur est que chaque cas se déroulera sur dans la suivante, sauf si vous arrêtez avec pause. Si le cas simple ci-dessus est étendue à 5 cas:
Exemple:
case 4:
echo "This is not the number you're looking for.\n";
$foo = 92;
break;
case 5:
echo "A copy of Ringworld is on its way to you!\n";
$foo = 34;
break;
(iii). En utilisant fallthrough pour plusieurs cas
Parce que l'interrupteur gardera le code en cours d'exécution jusqu'à ce qu'il trouve une pause, il est assez facile de prendre le concept de fallthrough et exécuter le même code pour plus d'un cas:
exemple:
cas 2:
case 3:
case 4:
echo "This is not the number you're looking for.\n";
$foo = 92;
break;
case 5:
echo "A copy of Ringworld is on its way to you!\n";
$foo = 34;
break;
(iv). commutation avancée: cas Condition
commutateur de PHP ne pas seulement vous permettre de passer de la valeur d'une variable particulière: vous pouvez utiliser toute expression comme l'un des cas, tant qu'il donne une valeur pour le cas à utiliser. À titre d'exemple, voici simple validateur écrit en utilisant le commutateur:
Exemple:
switch(true)
{
case (strlen($foo) > 30):
$error = "The value provided is too long.";
$valid = false;
break;
case (!preg_match('/^[A-Z0-9]+$/i', $foo)):
$error = "The value must be alphanumeric.";
$valid = false;
break;
default:
$valid = true;
break;
}
Je pense que cela peut vous aider à résoudre votre problème.
Heureux de voir que vous avez recommandé if() over switch() dans ce cas. Ce type de commutateur ajoute simplement de la complexité, IMO. – moo
Oui, il faudrait avoir une raison assez convaincante pour choisir ce style, mais il est bon de savoir que c'est possible. – nickf
Je suis vraiment heureux d'avoir appris cela.Chaque fois que je construis un projet dans un langage Basic-y, il me manque un 'switch()' de style C, et quand je travaille dans un langage C-ish, je manque vraiment de 'Select Case', ce qui est vraiment une façon sténographique de dire "il y a un gros bloc de si, sinon si, sinon-si ... ici". –