在开关参数中指定更多“case”

时间:2013-11-03 21:51:01

标签: php

我有以下代码:

$ErrorType = null;
switch ($ErrNo) {
    case 256, 1:
        $ErrorType = "Error";
        break;
    case 512, 2:
        $ErrorType = "Warning";
        break;
    case 1024, 8:
        $ErrorType = "Notice";
        break;
    case 2048:
        $ErrorType = "Strict Warning";
        break;
    case 8192:
        $ErrorType = "Depreciated";
        break;
}

但问题是,我将从错误处理软件解决方案的预定义常量开始。我不能为专用错误类别指定多个“案例”,例如:

switch ($ErrNo){
 case 1:
     $ErrorType = "Error";
     break;
 case 256:
     $ErrorType = "Error";
}

这是代码的重复..虽然像我的第一个例子这样的解决方案,但是因为两个整数属于同一类别会有所帮助。相反,我将返回以下内容:

  

解析错误:语法错误,意外','在行中的Action_Error.php   37

3 个答案:

答案 0 :(得分:5)

指定多个这样的案例

switch ($ErrNo){
    case 256:
    case 1:
        $ErrorType = "Error";
        break;
// ...

参考:http://php.net/manual/en/control-structures.switch.php

答案 1 :(得分:1)

指定重复案例,而不在它们之间使用break。例如:

switch ($ErrNo) {
    case 256:
    case 1:
        $ErrorType = "Error";
        break;    

    case 512:
    case 2:
        $ErrorType = "Warning";
        break;    

    /* ... */
}

答案 2 :(得分:1)

这样做的正确方法是:

switch ($ErrNo){
    case 1:
    case 256:
        $ErrorType = "Error";
        break;
    case 512:
    case 2:
        $ErrorType = "Error";
        break;
}