switch 语句用于根据多个不同条件执行不同动作。
我们前面学过if......else 语句判断条件,但是效率低,还有其他更好的方式吗?我们可以使用到一种方式就是:switch...case语法。
switch...case的语法结构如下:
switch(expr)
{
case expr1:
statement;
break;
case expr2:
statement;
break;
……
default:
statement;
}
switch 语句类似于具有同一个表达式的一系列 if 语句
每个case会依次判断,expr与expr1..n是否相等,如果相等则执行对应的statement,如果最后有break,则执行完成后跳出switch语句
default是在所有case都无法满足的情况下默认执行的操作
注意事项:
1.不要在case 后面写成分号,后面是冒号:
2.不要在case后面写判断区间,如($foo > 20 或者 $foo == 30)
3.switch里面在变量最好是 整型,字符串,因为布尔判断更适合if...else..
4.如果把每个case里的break去掉,那么每个case里的代码块会依次都执行到
5.switch语句可以不写default,但是作为好的习惯,建议保留default语句
实例<?php
header("Content-type:text/html;charset=utf-8"); //设置编码
$dir='north';
switch ($dir) {
case 'west':
echo '西';
break;
case 'east':
echo '东';
break;
case 'north':
echo '北';
break;
case 'sourth':
echo '南';
break;
default:
echo '未知';
break;
}
实例
我们来写一个简单的星期判断:<?php
header("Content-type:text/html;charset=utf-8"); //设置编码
//得到今天是星期几的英文简称
$day = date('D');
switch($day){
//拿学校举例,我们让星期一、二、三是校长日
case 'Mon':
case 'Tue':
case 'Wed':
echo '校长日';
break;
case 'Thu':
echo '星期四';
break;
case 'Fri':
echo '星期五';
break;
default:
echo '周末,周末过的比周一到周五还要累
';
}
看看今天星期几吧。