技术专区 \ PHP

【PHP 零基础入门教程】第一章 PHP基础知识 (1-11PHP Switch 语句)

Switch语句 ⋅ 2017-05-12 17:09:21

PHP Switch语句
  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.  switch语句可以不写default,但是作为好的习惯,建议保留default语句。
2.  switch里面在变量最好是整型,字符串,因为布尔判断更适合if...else..。
3.  如果把每个case里的break去掉,那么每个case里的代码块会依次都执行到。
4.  不要在case后面写判断区间,如($foo>20或者$foo==30)。
5.  不要在case后面写成分号,后面是冒号。

实例:

<?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 '周末,周末过的比周一到周五还要累<br />';
 }