📅  最后修改于: 2023-12-03 14:45:28.661000             🧑  作者: Mango
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
的值为0
、1
或2
时,输出"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
语句的用法,可以使代码更加清晰和易于维护。