首页课程PHP fun classswitch statement

switch statement

目录列表

switch语句

switch 语句用于根据多个不同条件执行不同动作。

PHP Switch 语句

如果您希望有选择地执行若干代码块之一,请使用 switch 语句。

语法

switch (n)
{
case label1:
如果 n=label1,此处代码将执行;
break;
case label2:
如果 n=label2,此处代码将执行;
break;
default:
如果 n 既不等于 label1 也不等于 label2,此处代码将执行;
}

工作原理:首先对一个简单的表达式 n(通常是变量)进行一次计算。将表达式的值与结构中每个 case 的值进行比较。如果存在匹配,则执行与 case 关联的代码。代码执行后,使用 break 来阻止代码跳入下一个 case 中继续执行。default 语句用于不存在匹配(即没有 case 为真)时执行。

使用嵌套的if else语句导致类似的行为,但是switch提供了更加优雅和最优的解决方案。


下面那些语句不可以替代switch语句?

switch示例

<?php
$favcolor="blue";
switch ($favcolor)
{
case "red":
echo "你最喜欢的颜色是red!";
break;
case "blue":
echo "你最喜欢的颜色是blue!";
break;
case "green":
echo "你最喜欢的颜色是green!";
break;
default:
echo "你最喜欢的颜色既不是red, blue, 也不是green!";
}
?>

以上代码最终输入就是"你最喜欢的颜色是blue!"

注意:每个案例后面的break关键字用于保持代码自动运行到下一种情况。如果你忘了break;声明,PHP会自动继续通过下一个case语句,即使情况不匹配。


填写空格使代码运行正确

<?php $i = 1; switch($i) { "1": echo 'One'; ; case "2": echo 'Two'; break; }

default

如果找不到匹配,则执行default默认语句。

<?php
$x=5;
switch ($x) {
  case 1:
    echo "One";
    break;
  case 2:
    echo "Two";
    break;
  default:
    echo "没有匹配";
}

//Outputs "没有匹配"
?>

另外,default语句是可选的,因此也可以省略。


break

如果没有指定break语句,PHP将继续执行该语句,直到发现中断为止。如果您需要在多个情况下到达相同的输出,则可以使用此行为。

<?php
$day = 'Wed';

switch ($day) {
  case 'Mon':
    echo '一个星期的第一天';
    break;
  case 'Tue':
  case 'Wed':
  case 'Thu':
    echo '工作日';
    break;
  case 'Fri':
    echo '星期五';
    break;
  default:
    echo '周末';
}

//Outputs "工作日"
?>

 如果$day等于'Tue','Wed'或'Thu',上述示例将具有相同的输出。


以下代码最终的输出结果是什么?&lt;?php $mo = &quot;December&quot;; switch ($mo) { case &quot;July&quot;: echo &quot;Summer&quot;; break; case &quot;January&quot;: echo &quot;Winter&quot;;default:echo&quot;Other;}