一个不明折原因的switch语句
1 <?php2 $i=9;
3 switch($i){
4 case 1:
5 echo " is 1";
6 break;
7 case 2 || 3 || 4:
8 echo "in ;
9 break;
10 default:
11 echo "others";
12 }
13
14 ?>
执行结果是in,为什么呢?不解。 本帖最后由 liexusong 于 2013-07-03 18:57 编辑
1 <?php
2 $i=9;
3 switch($i){
4 case 1:
5 echo " is 1";
6 break;
7 case 2:
8 case 3:
9 case 4:
10 echo "in ";
11 break;
12 default:
13 echo "others";
14 }
15
16 ?>至于为什么会出现你那种情况是因为: 2 || 3 || 4 表达式的结果是TRUE, 而跟$i比较, 因为他们不是同类型, 所以先把$i转换成bool类型, $i转换成bool类型为TRUE, 所以就出现了这种情况. 楼主的switch语法不对。。 谢谢两位。liexusong不仅给出了原因,还给出了正确的代码。
页:
[1]