php Switch语句和0

时间:2013-04-25 09:41:58

标签: php switch-statement zero

嗨,我今天看到了代码

$i=0;
switch($i){
    case 'TEST': print "Test";break;
    case 0: print "0";break;
} 

正常输出似乎是0,但它打印Test。然后我尝试理解它并得到一个解决方案here。也就是说,当将数字与字符串进行比较时,字符串将转换为数字并进行数字比较。好的,然后可以获得输出Test

但是如果我像

那样设置相同的话
$i=0;
switch($i){
    case ($a === 'Test'): print "Text";break;
    case ($a === 0): print "0";break;
}

那也给出了结果Test所以我在这里很困惑。如果我使用==代替===,则显示空白。所以请告诉我。

2 个答案:

答案 0 :(得分:0)

你必须将$ i作为数字吗? 让它成为字符串......

$i="0";
switch($i){
    case 'Test': print "Text";break;
    case '0': print "0";break;
}

打印0 ...

答案 1 :(得分:0)

Switch将0视为false,以便您可以:

$i=0;
switch(true){
    case $i === 'TEST': print "Test";
        break;
    case $i === 0 : print "0";
        break;
}