小智 131
switch-case语句的作用类似于if-elseif.
除了你可以使用if-elseif的正则表达式,你也可以在switch-case中使用它.
if (preg_match('/John.*/', $name)) {
// do stuff for people whose name is John, Johnny, ...
}
Run Code Online (Sandbox Code Playgroud)
可以编码为
switch $name {
case (preg_match('/John.*/', $name) ? true : false) :
// do stuff for people whose name is John, Johnny, ...
break;
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
Nik*_*kiC 16
没有或只有限.例如,您可以切换true:
switch (true) {
case $a == 'A':
break;
case preg_match('~~', $a);
break;
}
Run Code Online (Sandbox Code Playgroud)
这基本上给你一个if-elseif-else声明,但有语法和可能switch(例如,直通).
Orb*_*bit 15
是的,但是你应该使用这种技术来避免在switch参数变为false:
switch ($name) {
case preg_match('/John.*/', $name) ? $name : !$name:
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
请记住,上面的答案可以像这样稍微优化:
改变:
switch $name {
case (preg_match('/John.*/', $name) ? true : false) :
// do stuff for people whose name is John, Johnny, ...
break;
}
Run Code Online (Sandbox Code Playgroud)
到:
switch $name {
case (bool)preg_match('/John.*/', $name) :
// do stuff for people whose name is John, Johnny, ...
break;
}
Run Code Online (Sandbox Code Playgroud)