首先我们猜想下下面的代码会输出什么?
switch (0) {
case 'test1':
echo 1;
case 'test2':
echo 2;
case 'test3':
echo 3;
break;
}
打眼一看;如果你认为什么都不会输出;
那么这篇文章你就看值了;
事实上着段代码会输出123;
因为在比较的时候;'test1'、'test2'、'test3'转成整型的结果都是0;
所以;需要特别注意的就是;switch使用的是==比较;而不是===;
因此;在使用的过程中;一定要保持类型的统一;
解决这个问题的办法就是在传参的时候转为字符串string型;
switch (strval(123)) {
case 'string':
// code...
break;
case 'string2':
// code...
break;
case 'string3':
// code...
break;
}
本文为白俊遥原创文章,转载无需和我联系,但请注明来自白俊遥博客https://baijunyao.com 欢迎捐赠赞赏加入组织创建QQ群及捐赠渠道
最新评论