切换多个案例语句

2022-08-30 08:55:03

有人可以建议我如何替换下面的代码吗?

如何重写代码以避免块的重复?case 3:{code block A; break;}

switch(i) {
  case 1:  {code block A; break;}

  case 2:  {code block b; break;}

  case 3:  {code block A; break;}

  default: {code block default; break;}
}

如何组合案例 1 和案例 3 的代码?


答案 1

此格式显示在 PHP 文档中

switch (i) {
    case 1:
    case 3:
        code block A;
        break;
    case 2:
        code block B;
        break;
    default:
        code block default;
        break;
}

编辑 04/19/2021:

随着 PHP8 和新功能的发布,它通常是一个更好的解决方案,而不是 .matchmatchswitch

对于上面的示例,等效的将是:match

$matchResult = match($i) {
    1, 3    => // code block A
    2       => // code block B
    default => // code block default
}

该语句更短,不需要中断并返回一个值,因此您不必多次分配一个值。match

此外,将表现得像是在做 a 而不是 a。这可能会受到讨论,但事实就是如此。match=====


答案 2

类似的东西

switch(i) {
    case 1:
    case 3:  {code block A; break;}

    case 2:  {code block b; break;}

    default: {code block default; break;}
}

推荐