PHP开关语法

时间:2018-08-09 16:03:38

标签: php switch-statement case

我是PHP的NOOB,正在尝试弄清楚SWITCH语法。 我知道如何做如下的case语句:

$numbr = 2;
switch ($numbr) {
  case 2:
    echo "numbr is equal to 2";
    break;

   case 1:
     echo "numbr is 1";
     break;
}

,但是如果我改用它(检查大于1的数字),它将中断。我在做什么错了?

$numbr = 2;
switch ($numbr) {
  case >1:
    echo "numbr is greater than 1";
    break;

  case 1:
  echo "numbr is 1";
    break;
}

2 个答案:

答案 0 :(得分:1)

Switch语句不适用于这些情况,而应使用if/else

if($numbr > 1) {
    echo "numbr is greater than 1";
} else if($numbr == 1) {
    echo "numbr is 1";
}

在将一个值与许多其他值进行比较时,最有用的是开关,而不是将值与数学表达式或逻辑进行比较。

在可能的情况下,使用switch比使用if语句更好,因为switch语句仅被评估一次,而if语句针对每个if()被评估。

答案 1 :(得分:1)

您不能以此为例,必须有一个值。

一个好的解决方案可能是这个,但是仅对于正值:

$numbr = 2;
switch ($numbr) {
  case 0:
    break;

  case 1:
  echo "numbr is 1";
    break;

  default:
    echo "numbr is greater than 1";
    break;
}

如果您还想处理负值,则需要使用if / else,如其他人所述