ryb*_*111 0 php regex switch-statement
我的理解switch()是它避免重复字符串.
如果是这样,为什么它不支持正则表达式,如下面的代码?或者我错过了什么意思switch()?
switch($username){
case "":
array_push($errors, "Username cannot be blank");
break;
case "admin":
array_push($errors, "Username cannot be 'admin'");
break;
case regex_switch('/xxx.*/'):
array_push($errors, "Username cannot begin 'xxx'");
break;
}
Run Code Online (Sandbox Code Playgroud)
switch不是一般条件语句,而是比较值.可以把它想象成扩展到一系列if语句.
例如,考虑以下(伪代码):
switch(a) {
case x: ... break;
case y: ... break;
case z: ... break;
}
Run Code Online (Sandbox Code Playgroud)
随着扩展到如下:
if (a == x) {
}
elseif (a == y) {
}
elseif (a == z) {
}
Run Code Online (Sandbox Code Playgroud)
所以你的一个案例中的正则表达式最终会成为:
if (a == regex_switch(...)) {
}
Run Code Online (Sandbox Code Playgroud)
其中a是一个字符串......
| 归档时间: |
|
| 查看次数: |
47 次 |
| 最近记录: |