2013-07-15 80 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)来确保您正确地验证这些情况。