Voila, je veux faire un truc tout bête, j’ai un switch case, et je voudrais que dans un case il y a 2 possibilitée.
Un exemple pour simplifié, je voudrais qq chose comme ca :
switch($blabla)
{
case ‘aaa’ :
do_something();
break;
case ‘bbb’ OR ‘ccc’ :
do_something_else();
break;
}
J’ai déjà essayé comme ca, et bien sur ca ne marche pas…
Si quelqu’un a la solution
switch($blabla)
{
case 'aaa' :
do_something();
break;
case 'bbb': case 'ccc':
do_something_else();
break;
}
En fait quand le programme rentre dans un case, il continue jusqu’à la fin du switch (même si il y a un autre case d’ouvert) sauf s’il voit un break. C’est pourquoi ‘bbb’ ne fais pas rien, il continue (rentre dans le case de ‘ccc’) et fais éxécute donc aussi ‘do_something_else()’, ensuite ils sortent du switch par un break.
y’a pas des bas … et d’ailleurs les gogos, je les préfères sans bas :o
(ok, jeu de mots à 2 bytes, je vais me cacher dans le "topic blogue à bade" < toi aussi, amuses-toi à remettre les lettres dans le bon ordre pour ne rien gagner :paf:)
1- C’est bien mais si tu veux executer plusieurs fonctions, ou autres choses que des fonctions, ca marche pas.
2- En quoi switch c’est affreux et pas beau ? Explique un peu :neutre:
Le if/else peut être dans bien des cas plus rapides que son homologue avec switch. Du moins, c’est ce qu’on m’a appris. Ensuite cela doit dépendre du compilo : s’il est intelligent, il devrait utiliser une table de hashage ou un autre mécanisme, ce qui rend le switch plus rapide.
Mais ce n’est pas forcèment tout le temps possible, et il y a des raisons qui fait que cela ne le soit pas.
Ceci étant je ne suis pas spécialiste en la question je ne faisais que noter que le switch n’est pas forcèment mieux que le goto
Si le switch utilise du hashage, c’est aussi efficace (et tu laisse le compilo bosser à ta place).
et le script plante si le nom de fonction est mauvais à cause d’une faute de frappe etc. pour peu qu’un petit malin se soit amusé à paramétrer les nom de fonctions, ça devient imb…
c’est l’équivalent d’un Class.forname en Java: si on a pas le choix: OK, mais si on en abuse, il y a risque de plantage à l’exécution, ce qui est d’autant plus dommage qu’en mettant explicitement le nom de classe, les pbm sont résolus à la compil