📜  PHP之switch(1)

📅  最后修改于: 2023-12-03 14:45:28.661000             🧑  作者: Mango

PHP之switch

简介

switch是PHP中的一种语句,它类似于if语句,用于做条件分支。它的语法如下:

switch (expression) {
  case value1:
    // code to be executed if expression = value1
    break;
  case value2:
    // code to be executed if expression = value2
    break;
  ...
  default:
    // code to be executed if expression is different from all cases
}

switch语句的执行过程是这样的:首先计算一次expression的值,然后和case后面的值依次比较,如果相等就执行相应的代码,直到遇到了break关键字或者执行到了default中的代码为止。

使用方法
简单示例

下面来看一个简单示例:

switch ($day) {
  case "Mon":
    echo "Today is Monday";
    break;
  case "Tue":
    echo "Today is Tuesday";
    break;
  case "Wed":
    echo "Today is Wednesday";
    break;
  case "Thu":
    echo "Today is Thursday";
    break;
  case "Fri":
    echo "Today is Friday";
    break;
  case "Sat":
    echo "Today is Saturday";
    break;
  case "Sun":
    echo "Today is Sunday";
    break;
  default:
    echo "Invalid day";
}

在这个例子中,我们用switch语句来根据当前的星期几输出相应的信息。如果$day的值是"Mon",那么输出"Today is Monday",以此类推。如果$day不是上述七个值之一,那么输出"Invalid day"

多个条件

在每个case后面可以有多个值,用逗号隔开。这样,可以在一个case块中处理多个不同的数值。例如:

switch ($i) {
  case 0:
  case 1:
  case 2:
    echo "i is less than 3";
    break;
  case 3:
    echo "i is 3";
    break;
  default:
    echo "i is greater than 3";
}

在这个例子中,当$i的值为012时,输出"i is less than 3"。当$i的值为3时,输出"i is 3"。当$i的值大于3时,输出"i is greater than 3"

没有break

如果在case块中没有写break,那么switch语句会一直执行下去,直到遇到break为止。例如:

switch ($i) {
  case 0:
    echo "i is 0\n";
  case 1:
    echo "i is 1\n";
  case 2:
    echo "i is 2\n";
}

如果$i的值是0,那么输出如下:

i is 0
i is 1
i is 2

这是因为,当$i的值是0时,会执行case 0的代码,然后一直往下执行,直到遇到break或者执行到了switch语句的末尾。

使用switch语句判断变量类型

switch语句不仅可以用于判断数值,也可以用于判断变量类型。例如:

switch (gettype($var)) {
  case "integer":
    echo "var is an integer";
    break;
  case "string":
    echo "var is a string";
    break;
  case "float":
    echo "var is a float";
    break;
  case "array":
    echo "var is an array";
    break;
  default:
    echo "var is of a different type";
}

在这个例子中,我们用gettype函数来获取$var的类型,然后用switch语句来根据类型输出相应的信息。

总结

switch语句是PHP中用于条件分支的一种语句。它的语法和用法都比较简单,但是需要注意一些细节,比如每个case块必须要有break等。掌握switch语句的用法,可以使代码更加清晰和易于维护。