You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 21:34:51