values - php switch或




在switch语句中使用regexp (2)

PHP switch / case语句中是否允许使用regex以及如何使用它们?


switch-case语句的作用类似于if-elseif。
除了你可以使用if-elseif的正则表达式,你也可以在switch-case中使用它。

if (preg_match('/John.*/', $name)) {
    // do stuff for people whose name is John, Johnny, ...
}

可以编码为

switch $name {
    case (preg_match('/John.*/', $name) ? true : false) :
        // do stuff for people whose name is John, Johnny, ...
        break;
}

希望这可以帮助。


是的,但是当switch参数变为false时,你应该使用这种技术来避免问题:

switch ($name) {
  case preg_match('/John.*/', $name) ? $name : !$name:
    // do stuff
}




switch-statement