选择控制语句相对简单,使用switch语句结构即可,其基本格式如下:
switch(<条件>)
{
case <值1>:
<语句块1>
case <值2>:
<语句块2>
case <值n>:
<语句块n>
default:
<语句块n+1>
}
switch语句结构中只有一个条件,而这个条件可能会有多个值,值的类型可以是数值,也可以是字符串;我们使用case语句处理不同值的执行代码,而default语句则用于处理没有对应值的情况,它的功能与if语句中的else功能相似,可以根据实际情况选择使用。
如下面的代码,其功能是根据颜色英文名显示其对应的中文名称。
$color_en = 'red';
switch($color_en)
{
case 'red':
{
echo '红色';
break;
}
case 'green':
{
echo '绿色';
break;
}
case 'blue':
{
echo '蓝色';
break;
}
default:
{
echo '未知颜色';
break;
}
}
代码会显示“红色”。请注意代码中的break;语句,你可以尝试删除它看看运行的结果如何。没错,代码会执行对应值以后所有的语句,直到有break或其它终止运行的语句(如return、exit等);而在这里,break语句的作用就是在适当的时候终止switch语句结构的工作。不过,有些时候,我们也可以利用没有break语句时的工作特点来完成一些工作,比如计算每个月的天数,如下面的代码。
$year = 2008;
$month = 2;
$daysOfMonth = 0;
switch($month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
$daysOfMonth = 31;
break;
case 4:
case 6:
case 9:
case 11:
$daysOfMonth = 30;
break;
case 2:
{
if(($year%100!=0 && $year%4==0) ||
($year%100==0 && $year%400==0))
$daysOfMonth = 29;
else
$daysOfMonth = 28;
}break;
}
echo $year,'年',$month,'月有',$daysOfMonth,'天';
代码会显示“2008年2月有29天”。