先来看一段代码:
<?php
$Name = "Bob";
if ($Name == "Jim") {
print "Your name is Jim\n";
} else {
if ($Name == "Linda") {
print "Your name is Linda\n";
} else {
if ($Name == "Bob") {
print "Your name is Bob\n";
} else {
if ($Name == "Sally") {
print "Your name is Sally\n";
} else {
print "I do not know your name!\n";
}
}
}
}
?>
由于上面的代码中,if
语句是嵌套的,想要找出执行了什么代码并不容易。PHP为这种情况提出了一个解决方案,叫做switch/case
语句。在switch/case
中,先列出你要检查的对象,然后给出想要处理的值。使用switch/case
语句来重写上面的代码:
<?php
$Name = 'Bob';
switch($Name) {
case "Jim": print "Your name is Jim\n"; break;
case "Linda": print "Your name is Linda\n"; break;
case "Bob": print "Your name is Bob\n"; break;
case "Sally": print "Your name is Sally\n"; break;
default: print "I do not know your name!\n";
}
?>
switch/case
可以用来检查各种数据类型,比用if
语句大大节省了空间。
使用switch/case
语句需要注意两点:
default
前没有case
。case
语句都是以break;
结尾的。如果忘记了break;
,PHP将会顺序执行下面的语句。关键词break
的意思是“跳出switch/case
语句”。如果没有break
,上面将会输出:
Your name is Bob
Your name is Sally
I do not know your name
一旦PHP匹配了Bob
,就会继续向下输出Sally
和默认语句。除非你就是想要这么输出,否则最好还是使用break
语句。