php中的switch($var)语句是一种比较常见的控制语句,它通常用于根据不同的条件执行不同的代码块。这个语句通常是和case语句一起使用,可以根据变量的值匹配相应的代码块。下面我们来详细了解一下php中switch($var)语句的用法和特点。
switch($var)语句的基本用法如下:
switch ($var) {
case value1:
// 执行代码块 1
break;
case value2:
// 执行代码块 2
break;
default:
// 执行代码块 n
}
其中,$var为待比较的变量,value1、value2等为需要比较的值,在匹配到相应的值时执行对应的代码块。default是可选的,用于在没有匹配到任何值时执行的代码块。
举个例子,假设我们有一个变量$day表示周几,我们可以使用switch($day)语句来根据不同的天数执行不同的代码:
$day = "星期一";
switch ($day) {
case "星期一":
echo "上班日";
break;
case "星期二":
echo "上班日";
break;
case "星期三":
echo "上班日";
break;
case "星期四":
echo "上班日";
break;
case "星期五":
echo "上班日";
break;
case "星期六":
echo "休息日";
break;
case "星期日":
echo "休息日";
break;
default:
echo "输入错误,请输入正确的日期";
}
运行以上代码可得输出结果为“上班日”,因为$day的值为“星期一”,匹配到了第一个case语句。
switch($var)语句的一个特点是每个case语句同时需要使用break来标记代码块的结束,否则会继续执行下一条case语句直到default语句。比如以下代码:
$x = 10;
switch ($x) {
case 10:
echo "x 等于 10";
case 20:
echo "x 等于 20";
case 30:
echo "x 等于 30";
default:
echo "没有匹配到任何值";
}
以上代码的输出结果为“x 等于 10x 等于 20x 等于 30没有匹配到任何值”,因为case 10代码块没有使用break标记,导致后面的代码块也被执行了。
除了使用常量进行匹配,我们还可以使用表达式,比如以下代码:
$i = 10;
switch (true) {
case $i<5:
echo "i 小于 5";
break;
case $i<10:
echo "i 小于 10";
break;
case $i<15:
echo "i 小于 15";
break;
default:
echo "i 大于等于 15";
}
以上代码的输出结果为“i 小于 10”,因为$i小于10匹配到了第二个case语句。
总结来说,php中的switch($var)语句通常和case语句一起使用,用于根据不同的条件执行不同的代码块。默认情况下每个case语句需要使用break标记以避免执行下一条语句。除了使用常量进行匹配,还可以使用表达式进行匹配。