0

我有以下代码:

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

这是代码的重复。虽然使用像我的第一个示例这样的解决方案,这将是有益的,因为两个整数属于同一类别。相反,我返回以下内容:

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

4

3 回答 3

5

像这样指定多个案例

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

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

于 2013-11-03T21:53:57.817 回答
1

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

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

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

    /* ... */
}
于 2013-11-03T21:53:49.337 回答
1

正确的方法是:

switch ($ErrNo){
    case 1:
    case 256:
        $ErrorType = "Error";
        break;
    case 512:
    case 2:
        $ErrorType = "Error";
        break;
}
于 2013-11-03T21:54:24.840 回答