比如我想在不同的分类文章中显示不同的内容,那么实现的原理就是获得当前分类 ID,然后判断 ID 对应什么分类就显示什么内容。如果分类只有 1-2 个我们可以直接使用 if…else..代码实现,但是如果分类有十多个的话,使用 if…elseif…else…代码实现就太过冗长了,所以此时非常有必要使用 switch 语句来根据不同条件执行不同的动作。
Switch的语法
switch (expression)
{
case label1:
code to be executed if expression = label1;
break;
case label2:
code to be executed if expression = label2;
break;
default:
code to be executed
if expression is different
from both label1 and label2;
}
Switch的工作原理
- 对表达式(通常是变量)进行一次计算;
- 把表达式的值与结构中 case 的值进行比较;
- 如果存在匹配,则执行与 case 关联的代码;
- 代码执行后,break 语句阻止代码跳入下一个 case 中继续执行;
- 如果没有 case 为真,则使用 default 语句。
Switch的实例
<?php
$favcolor="red";
switch ($favcolor) {
case "red":
echo "Your favorite color is red!";
break;
case "blue":
echo "Your favorite color is blue!";
break;
case "green":
echo "Your favorite color is green!";
break;
default:
echo "Your favorite color is neither red, blue, or green!";
}
?>
比如我们把获取的文章分类 ID 赋值给$favcolor,然后让其判断 ID 跟哪一个 ID 相同,然后就执行输出相应的内容即可。比如 boke112 导航首页的缩略图就是使用这个方法实现。
答案中的语法、工作原理和实例来自@w3school