开关语句中的正则表达式

2022-08-30 10:26:17

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


答案 1

switch-case 语句的工作方式类似于 if-elseif。
除了可以将正则表达式用于 if-elseif 之外,您还可以在开关情况下使用它。

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

希望这有帮助。


答案 2

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

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

这基本上给你一个语句,但语法和可能(例如,fall-through)。if-elseif-elseswitch


推荐