PHP switch 条件语句

来源:百度文库 编辑:神马文学网 时间:2024/10/01 08:48:12

本章讲述 PHP 语言中的 switch 语句。

switch 语句和 if 语句相似,都是条件语句。很多情况下,需要将一个变量(或者表达式) 与不同的值进行比较,并根据它等于哪个值来执行不同的代码,这个时候,我们用 switch 语句更合适。

switch 条件语句的语法

switch 语句的语法如下:

switch (expression)
{
case value:
statement
break;
case value:
statement
break;
[default:
statement^]
}

下面两个例子用不同方法实现同样的事情,第一个是用 if...elseif...else 语句,一个使用 switch语句。

if ($i == 0) {
echo "i equals 0";
} elseif ($i == 1) {
echo "i equals 1";
} elseif ($i == 2) {
echo "i equals 2";
}
else {
echo "i is not equal to 0, 1 or 2";
}
?>

上面这段 PHP 代码的意思是:如果变量 $i 等于 0,则输出 "i equals 0";如果变量 $i 等于 1,则输出"i equals 1";如果变量 $i 等于 2,则输出 "i equals 2";如果都不是,则输出"i is not equal to0, 1 or 2"。

下面是对应的switch 代码:

switch ($i) {
case 0:
echo "i equals 0";
break;
case 1:
echo "i equals 1";
break;
case 2:
echo "i equals 2";
break;
default:
echo "i is not equal to 0, 1 or 2";
}
?>

在每个 case 语句段后要加 break,如果不在 case 的语句段最后写上 break 的话,PHP 将继续执行下一个 case 中的语句段。

default 应该放在最后,只有在所有 case 都不符合的情况下,才执行 default 后面的语句。default 不是必须的,可以不写。

case 表达式可以是整数,浮点数(小数),以及字符串。

下面是一个使用字符串的 switch 示例:

switch ($food) {
case "apple":
echo "give me an apple";
break;
case "orange":
echo "give me an orange";
break;
case "cake":
echo "give me a piece of cake";
break;
}
?>

一个 case 中的语句也可以为空,如下示例:

switch ($i) {
case 0:
case 1:
case 2:
echo "i is less than 3 but not negative";
break;
case 3:
echo "i is 3";
}
?>

switch 语句和 elseif 语句的比较

在 switch 语句中,条件只求一次,然后和每个 case 比较,而在 elseif 语句中,条件会再次求值。如果你的条件比较复杂,或者是多次循环,用 switch 语句速度会更加快些。