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

それはコードの繰り返しです..私の最初の例のような解決策では、2つの整数が同じカテゴリに分類されるので有益です..代わりに、次のように返されます:

解析エラー: 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 に答える