导航
×
   ❮   
HTML CSS JavaScript PHP Go ECMS

PHP switch 语句


switch 语句用于基于不同的条件执行不同的操作。


PHP switch 语句

使用 switch 语句来选择执行多个代码块中的一个

语法

switch (expression) {
  case label1:
    //code block
    break;
  case label2:
    //code block;
    break;
  case label3:
    //code block
    break;
  default:
    //code block
}

工作原理如下

  • 表达式被计算一次
  • 表达式的值与每个 case 的值进行比较
  • 如果匹配成功,则执行关联的代码块
  • break 关键字会中断 switch 语句块的执行
  • 如果没有匹配项,则执行 default 代码块

实例

$favcolor = "red";

switch ($favcolor) {
  case "red":
    echo "Your favorite color is red!";
    break;
  case "blue":
    echo "Your favorite color is blue!";
    break;
  case "green":
    echo "Your favorite color is green!";
    break;
  default:
    echo "Your favorite color is neither red, blue, nor green!";
}
亲自试一试 »

break 关键字

当 PHP 遇到 break 关键字时,它会中断 switch 语句块的执行。

这将停止执行更多代码,并且不再测试任何 case。

最后一个代码块不需要 break,因为该代码块本身就会结束。

警告: 如果在非最后一个 case 中省略 break 语句,并且该 case 匹配成功,那么即使求值不匹配下一个 case,下一个 case 也会被执行!

实例

如果我们从 case "red" 中移除 break 语句会发生什么?

$favcolor 是 red,因此 case "red" 的代码块将被执行,但由于它没有 break 语句,case "blue" 的代码块也会被执行。

$favcolor = "red";

switch ($favcolor) {
  case "red":
    echo "Your favorite color is red!";
  case "blue":
    "Your favorite color is blue!";
    break;
  case "green":
    echo "Your favorite color is green!";
    break;
  default:
    echo "Your favorite color is neither red, blue, nor green!";
}
亲自试一试 »

default 关键字

default 关键字指定如果没有 case 匹配时要运行的代码。

实例

如果没有 case 匹配,则执行 default 代码块。

$d = 4;

switch ($d) {
  case 6:
    echo "Today is Saturday";
    break;
  case 0:
    echo "Today is Sunday";
    break;
  default:
    echo "Looking forward to the Weekend";
}
亲自试一试 »

default case 不一定是 switch 语句块中的最后一个 case。

实例

default 代码块放在 switch 语句块末尾以外的其他位置是允许的,但不推荐。

$d = 4;

switch ($d) {
  default:
    echo "Looking forward to the Weekend";
    break;
  case 6:
    echo "Today is Saturday";
    break;
  case 0:
    echo "Today is Sunday";
}
亲自试一试 »

注意: 如果 default 不是 switch 语句块中的最后一个代码块,请记住在 default 代码块后加上 break 语句。


共用代码块

如果您希望多个 case 使用相同的代码块,可以这样指定 case:

实例

一个代码块的多个 case

$d = 3;

switch ($d) {
  case 1:
  case 2:
  case 3:
  case 4:
  case 5:  
    echo "The weeks feels so long!";
    break;
  case 6:
  case 0:
    echo "Weekends are the best!";
    break;
  default:
    echo "Something went wrong";
}
亲自试一试 »

freew3c.com 中文网是独立运营的中文开发者学习平台,与 freew3c.com 无关联。提供的内容仅用于学习和测试,不保证内容的正确性。


Copyright @2020-2026 京ICP备888888号-8