PHP语言中的Switch语句用于执行众多代码语句之一。它可以被视为一组 if-else 语句

语法

switch (expression){
  case 1:
     statement 1;
     break;
  case 2:
     statement 2;
     break;
     ...
     ...
     ...
  case N:
     statement N;
     break;
  default:
     default statement;
} 

对 Switch 表达式进行求值并与情况进行匹配。当 Case 匹配时,执行以下代码块。

流程图:

PHP switch

示例:

在下面的示例中,switch 表达式是一个名为 i 的变量值为 2,与 case 值相匹配。当 case 值与表达式值匹配时,执行case以下代码块。

<?php
$i = 2;
switch($i){
  case 1: 
    echo "Red\n";
    break; 
  case 2: 
    echo "Blue\n";
    break;
  case 3: 
    echo "Green\n";
}
?> 

上述代码的输出将是:

Blue 

default 和 break 语句

这里的Default case和break语句是可选的。

  • Default Case:当switch表达式和测试用例不匹配时,执行Default语句。
  • Break 语句:Break 语句用于在找到匹配项后跳出 Switch 语句。

示例:

在下面的示例中,switch 表达式是一个名为 i 的变量,其值为 10,与 case 值相匹配。由于没有与值10匹配的大小写,因此执行default代码块。

<?php
$i = 10;
switch($i){
  case 1: 
    echo "Red\n";
    break; 
  case 2: 
    echo "Blue\n";
    break;
  case 3: 
    echo "Green\n";
    break;
  default: 
    echo "未找到匹配项.\n";
}
?> 

上述代码的输出将是:

未找到匹配项. 

请注意,default语句可以放在switch语句中的任意位置。在这种情况下,请添加 break 语句和 default 语句。

示例:

考虑下面的示例,其中 default 语句放在 switch 语句的顶部。

<?php
$i = 10;
switch($i){
  default: 
    echo "未找到匹配项.\n";
    break;
  case 1: 
    echo "Red\n";
    break; 
  case 2: 
    echo "Blue\n";
    break;
  case 3: 
    echo "Green\n";
}
?> 

上述代码的输出将是:

未找到匹配项. 

通用代码块

在某些情况下,多个情况下需要相同的代码块。

示例:

在下面的示例中,不同的 switch 共享相同的代码块

<?php
$i = 10;
switch($i){
  case 1: 
    echo "Red\n";
    break; 
  case 2: 
  case 10:
    echo "Blue\n";
    break;
  case 3: 
  case 4:
  case 5:
    echo "Green\n";
}
?> 

上述代码的输出将是:

Blue