switch 语句中的正则表达式

新手上路,请多包涵

PHP switch/case 语句中是否允许正则表达式以及如何使用它们?

原文由 Toto 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 624
2 个回答

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;
}

原文由 bourbaki 发布,翻译遵循 CC BY-SA 4.0 许可协议

没有或只有有限的。例如,您可以切换为 true

 switch (true) {
    case $a == 'A':
        break;
    case preg_match('~~', $a);
        break;
}

这基本上为您提供了 if-elseif-else 语句,但语法和可能为 switch (例如 fall-through。)

原文由 NikiC 发布,翻译遵循 CC BY-SA 2.5 许可协议

推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏