2013-07-15 77 views
0
switch ($i) { 
    case NULL: 
     echo "It is NULL"; 
     break; 
    case 0: 
     echo "It is zero"; 
     break; 
} 

如果我將$ i設置爲NULl或0,那麼switch語句將評估它爲NULL。爲交換機沒有準備好應對這種等價的:Switch語句和NULL與0

if ($i === NULL) { 
    echo 'This is NULL'; 
} 
if ($i == 0) { 
    echo 'This is Zero'; 
} 

如果是的話,我應該承擔我必須有一個IF循環,而不是切換?

+1

這是相關的,應該幫助:http://stackoverflow.com/questions/3525614/make-switch-use-comparison-not-comparison-in-php –

+2

開關做一個等價測試(==)不是一個平等測試(===) – Orangepill

+0

交換機不做身份檢查 – bwoebi

回答

2

我也打算建議將您的開關輸入變量作爲您可以期望的(int)或(string)來確保您正確地驗證這些情況。