2012-04-26 28 views
0

我在想,如果有一種方法在一個case語句來評估OR,如:
或操作員在PHP案例

case 0 || 3: 
    echo "equal to 0 or 3!"; 
    break; 

我試過||一段時間後,它似乎並沒有爲我工作,谷歌沒有證明有幫助。
我只是想知道這一點,因爲有一些情況下,或案例中的操作員會非常有用...
任何幫助表示讚賞。

回答

1

當與解析爲布爾邏輯和比較操作時,您可以使用switch(true)還是真的,任何「真」值,由於與switch檢查不嚴格)的情況下,您想第一true的情況。

switch(true){ 
    case ($foo >= 0): 
     break; 
    case ($bar <= 0): 
     break; 
    case ($baz == 0): 
     break; 
    case ($foo > $bar && $bar < $baz): 
     break; 
    default: 
     break; 
} 

但是,有些語法替代方法可能會證明更具可讀性,或提供更多控制。

正如@alex指出的那樣,如果您希望多個案例解析爲相同的代碼塊,您可以將它們堆疊起來讓它們通過。

6

您可以讓案件落空。

case 0: 
case 3: 
    echo "equal to 0 or 3!"; 
    break; 

許多風格指南不建議這樣做。

+1

很多風格指南都是錯誤的,那麼,關於*這個具體案例*。但總的來說,利用突破使得事情變得更難以遵循。如果你在兩種情況之間有任何東西(沒有「休息」),請立即悔過。 :) – cHao 2012-04-26 03:48:32