为什么总是在这个PHP switch语句中输入案例?

时间:2014-06-07 04:28:58

标签: php math wtfpl

这是我的代码:

$array = [1,2,3];

foreach($array as $n){
  switch($n){
    case 1:
      print 1;
    case 2:
      print 2;
    default:
      print 3;
  }
}

它打印123233

我不明白,不应该打印123?我很困惑因为:

  • 1是1,但是2不是1,并且3不是1
  • 2不是1,2,2是2,2不是3
  • 3不是1,3不是2,3是3

为什么它没有按预期工作?

1 个答案:

答案 0 :(得分:4)

在任何打印后添加break

$array = [1,2,3];

foreach($array as $n){
  switch($n){
    case 1:
      print 1;
      break;
    case 2:
      print 2;
      break;
    default:
      print 3;
      break;
  }
}

如果您没有break关键字,那么代码将继续从案例的角度执行。