在 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
语句。类似地,为 spaghetti
和 pizza
编写案例,就像你为 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
的值。分别为 momo
、pizza
、burger
和 default
编写案例和代码块。不要在任何代码块中编写 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 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