php switch 不加 break 会怎么样?
在PHP中,switch语句若无break会导致后续case代码执行(穿透现象),例如匹配到case 1后继续执行case 2代码;此特性可被利用共享逻辑,但建议常规情况下每个case后添加break以避免意外行为。 2025-5-15 07:52:33 Author: www.yanglong.pro(查看原文) 阅读量:18 收藏

在PHP中,switch语句如果不加break会导致”case穿透”现象。具体表现如下:

当匹配到某个case后,如果没有break语句,代码会继续执行后续所有case中的语句,直到遇到break或switch结束

这种特性有时会被故意利用来实现多个case共享同一段代码的逻辑

示例说明:

switch ($value) {
  case 1:
    echo "这是1";
    // 这里没有break
  case 2:
    echo "这是2";
    break;
  case 3:
    echo "这是3";
    break;
}

当$value=1时,输出会是:
“这是1这是2”

因为匹配到case 1后,没有break阻止,所以继续执行了case 2的代码。

建议:除非有特殊需求,否则每个case后都应该加上break语句以避免意外行为。


文章来源: https://www.yanglong.pro/php-switch-%e4%b8%8d%e5%8a%a0-break-%e4%bc%9a%e6%80%8e%e4%b9%88%e6%a0%b7%ef%bc%9f/
如有侵权请联系:admin#unsafe.sh