les regexp dans l'instruction switch
est-ce que les regex sont autorisés dans les instructions PHP switch/case et comment les utiliser ?
41
demandé sur
Toto
2010-10-28 18:13:31
3 réponses
Switch-case statement fonctionne comme si-elseif.
Ainsi que vous pouvez utiliser des regex pour if-elseif, vous pouvez également l'utiliser en cas de commutateur.
if (preg_match('/John.*/', $name)) {
// do stuff for people whose name is John, Johnny, ...
}
peut être codé comme
switch $name {
case (preg_match('/John.*/', $name) ? true : false) :
// do stuff for people whose name is John, Johnny, ...
break;
}
J'espère que cela vous aidera.
120
répondu
NikiC
2010-10-29 13:20:14
non ou seulement limité. Vous pouvez par exemple interrupteur pour true
:
switch (true) {
case $a == 'A':
break;
case preg_match('~~', $a);
break;
}
cela vous donne unif-elseif-else
déclaration, mais avec la syntaxe et de la puissance de switch
(par exemple à l'automne.)
16
répondu
NikiC
2010-10-28 14:49:54
Oui, mais vous devez utiliser cette technique pour éviter les problèmes lorsque le commutateur argument est évaluée comme false
:
switch ($name) {
case preg_match('/John.*/', $name) ? $name : !$name:
// do stuff
}
13
répondu
Orbit
2015-03-03 06:20:07