在 PHP Switch Case 中使用默认值

Subodh Poudel 2023年1月30日 2021年7月8日
  1. PHP switch 案例
  2. 在 PHP 中的 switch-case 语句中使用 default 语句
  3. 在 PHP switch-case 中使用 default 语句而不使用 break 语句
在 PHP Switch Case 中使用默认值

我们将介绍 PHP 中的 switch case 语句。我们将描述 switch case 的不同场景以及代码如何处理 case。然后我们将介绍 break 语句及其在 PHP 中 switch case 语句中的使用。

如果在它之前存在匹配的案例,我们将检查 default 案例是否执行。在此方法中,我们将删除 break 语句以检查结果。

PHP switch 案例

switch-case 语句是有条件的,可以替代 if-elseif-else 语句。该语句检查变量的几种情况,直到找到正确的匹配项并根据匹配的情况执行它。我们可以使用 switch 语句来测试变量,并使用 case 语句来指定要测试的案例。我们在 case 语句之后编写一段代码,以便在 case 匹配时执行代码。

switch-case 语句与 if-elseif-else 语句以一种独特的方式不同。if-elseif-else 语句在条件为真后执行唯一的代码并中止条件测试。但是,在 switch case 语句中,每个 case 都会被测试,并且每个对应的代码都会执行。为了解决这个问题,我们使用 break 语句。当 case 匹配并且相应的代码运行时,执行到 break 语句,条件检查中止。因此,我们在每个 case 的末尾写上 break 语句。

例如,创建一个变量 $favfood 并为其分配值 pizza。用括号中的变量 $favfood 编写一个 switch 语句。在 switch 语句中,编写 case 语句并提供 case momo 作为 case "momo":。不要错过值后面的冒号。使用案例下方的 echo 语句并显示消息 Your favorite food is momo!。在显示消息后编写 break 语句。类似地,为 spaghettipizza 编写案例,就像你为 momo 所做的那样,相应地显示消息,并为每个案例编写 break 语句。

下面的示例显示消息 Your favorite food is pizza!因为变量 $favfood 保存了值 pizza。首先,测试案例 momo。由于它不匹配,执行移向案例 spaghetti。这个 case 也不匹配,但是 case pizza 匹配。然后它显示相应的消息并执行 break 语句。break 语句结束整个 switch case 语句,防止进一步的代码被执行。
示例代码:

# php 7.*
<?php
$favfood = "pizza";
switch ($favfood) {
    case "momo":
        echo "Your favorite food is momo!";
    break;
    case "spaghetti":
        echo "Your favorite food is spaghetti!";
    break;
    case "pizza":
        echo "Your favorite food is pizza!";
    break;
    case "burger":
        echo "Your favorite food is burger!";
    break;
}
?>

输出:

Your favorite color is pizza!

在 PHP 中的 switch-case 语句中使用 default 语句

我们可以在 switch-case 语句中使用 default 语句来表示不符合上述指定情况的情况。换句话说,如果没有任何情况匹配,default 语句将执行。我们在所有案例的末尾写下 default 语句。在上面的例子中,没有默认情况。如果上述情况均不匹配,则代码不输出任何内容。因此,default 语句解决了其余的情况。

我们可以修改第一个代码示例来说明 default 语句的使用。例如,将值 spaghetti 分配给变量 $favfood。删除 case spaghetti 的代码块并添加默认语句。在 default 语句中,显示消息 We could not find your favorite food。在消息后写下 break 语句。

在下面的示例中,没有指定的案例匹配。因此,控制到达 default 语句。然后,它显示相应的消息。如果我们没有删除 spaghetti 的代码块,默认语句将不会被执行。它会显示 Your favorite food is spaghetti!的消息。如果大小写匹配,break 语句将中止条件检查。

示例代码:

#php 7.x
<?php
$favfood = "spaghetti";
switch ($favfood) {
    case "momo":
        echo "Your favorite food is momo!";
    break;
    case "pizza":
        echo "Your favorite food is pizza!";
    break;
    case "burger":
        echo "Your favorite food is burger!";
    break;
    default:
        echo "We could not find your favorite food";
    break;
}
?>

输出:

We could not find your favorite food

在 PHP switch-case 中使用 default 语句而不使用 break 语句

我们可以在 switch case 中使用 default 语句而不使用 break 语句来检查 default 块是否会在它之前执行匹配的 case。我们可以稍微修改上面的示例代码以进行演示。例如,将 $favfood 分配给 momo 的值。分别为 momopizzaburgerdefault 编写案例和代码块。不要在任何代码块中编写 break 语句。

在下面的示例中,执行会遍历所有案例并显示所有消息。即使之前有匹配案例,默认块也将与匹配案例后面的块一起执行。这是因为我们省略了 break 语句。

示例代码:

#php 7.x
<?php
$favfood = "momo";
switch ($favfood) {
    case "momo":
        echo "Your favorite food is momo!"."<br>"; 
    case "pizza":
        echo "Your favorite food is pizza!"."<br>";
    case "burger":
        echo "Your favorite food is burger!"."<br>";
    default:
        echo "We could not find your favorite food"."<br>"; 
}
?>

输出:

Your favorite food is momo! 
Your favorite food is pizza! 
Your favorite food is burger! 
We could not find your favorite food.
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn