嗨,我今天看到了代码
$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
所以我在这里很困惑。如果我使用==
代替===
,则显示空白。所以请告诉我。
答案 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;
}