在 PHP Switch Case 中使用默认值

Subodh Poudel 2023年1月30日 PHP PHP Switch
  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.
Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe
作者: Subodh Poudel
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