PHP中true/false分支的switch语句为何同时输出yes和no?
为什么这段PHP代码会同时输出'yes'和'no'?
这是因为PHP的switch语句默认是匹配后贯穿执行的逻辑,不是找到匹配的case就立刻停止。
你的代码里,is_array($arr)返回TRUE,所以会先执行case TRUE里的print "yes",但因为这个case末尾没有加break;,程序不会跳出switch结构,而是继续往下执行后面的case FALSE代码块,所以就跟着输出了"no"。
只要在case TRUE的代码末尾加上break;,就能让程序执行完当前case后直接跳出switch,不再执行后续的分支:
$arr=[1,2]; switch (is_array($arr)) { case TRUE: print "yes"; break; // 添加break终止后续执行 case FALSE: print "no"; }
内容的提问来源于stack exchange,提问作者Frank Underwood
相关产品推荐
相关产品推荐

