一个更好的PHP切换命令

时间:2016-02-10 01:32:17

标签: php

在pick basic中有一个case命令,其功能类似于switch命令,基本上是嵌套if else命令。代码是这样的:

begin case case a=4;do something case b=5 or c=6;do something case y=x and f=z;do something case 1;do something end case 如果任何条件成立,则属于这种情况。我知道PHP有switch命令,但这仅限于一个变量的值。是否有一种方法可以在PHP或javascript中编写上述内容,而不需要一堆if then else命令,类似于上面的命令?

2 个答案:

答案 0 :(得分:3)

如果您确实不想使用if / else,那么switch (true) 可以工作:< / p>

switch (true) {
    case ($a === 4):
        doSomething();
        break;
    case ($b === 5 || $c === 6):
        doSomething();
        break;
    case ($y === $x || $f === $z):
        doSomething();
        break;
    default:
        break;
}

然而,如果您只是简单地使用if / else,那么打字就会减少,而且会让您的代码更具可读性,就像Shomz建议的那样。我真的不建议使用switch (true)

答案 1 :(得分:1)

case替换else if的时间只有3个字节,我没有看到大问题,因为这正是if/else的用途。正如你所说,开关用于单个变量。

您的do something还可以包含结果变量或在满足任何条件时将设置的标记。

所以这个:

begin case
  case a=4;do something
  case b=5 or c=6;do something
  case y=x and f=z;do something
  case 1;do something
 end case

可能是:

  var case = false;
  if (a==4) {dosomething(); case = true}
  else if (b==5 || c==6) {dosomething(); case = true}
  else if (y==z || f==z) {dosomething(); case = true}
  else if (1) {dosomething(); case = true} // supposedly the default case?