2013-11-03 25 views
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"; 
} 

這是一個代碼重複..而對於像我的第一個例子中的解決方案,這將是有益的,因爲兩個整數下同一類別下降。 。相反,我回來了以下內容:

Parse error: syntax error, unexpected ',' in Action_Error.php on line 37

回答

1

指定重複的情況下,不使用它們之間break。例如:

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

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

    /* ... */ 
} 
1

做到這一點,正確的方法是:

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