1

嗨,我今天看到这样的代码

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

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

但是,如果我设置与它相同怎么办

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

这也给出了结果Test,所以我在这里很困惑。如果我使用==而不是===那么它显示为空白。所以请清除我。

4

2 回答 2

0

您是否必须将 $i 设为数字?让它也成为字符串...

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

打印 0...

于 2013-04-25T09:47:34.947 回答
0

切换对待0false这样你就可以去:

$i=0;
switch(true){
    case $i === 'TEST': print "Test";
        break;
    case $i === 0 : print "0";
        break;
} 
于 2017-11-10T20:25:29.467 回答