只所以称为“高级”用法,是因为我连switch的最基础的用法都还没有掌握,so,接下来讲的其实还是它的基础用法!
switch 语句和具有同样表达式的一系列的 IF 语句相似。很多场合下需要把同一个变量(或表达式)与很多不同的值比较,并根据它等于哪个值来执行不同的代码。这正是 switch 语句的用途。
注意: 注意和其它语言不同,continue 语句作用到 switch 上的作用类似于 break。如果在循环中有一个 switch 并希望 continue 到外层循环中的下一个轮回,用 continue 2。
下面两个例子使用两种不同方法实现同样的事,一个用一系列的 if 语句,另一个用 switch 语句:
Example #1 switch 结构
复制代码 代码如下:
<"i equals 0";
}
elseif ($i == 1)
{
echo "i equals 1";
}
elseif ($i == 2)
{
echo "i equals 2";
}
switch ($i)
{
case 0:
echo "i equals 0";
break;
case 1:
echo "i equals 1";
break;
case 2:
echo "i equals 2";
break;
}
"codetitle">复制代码 代码如下:
<"apple":
echo "i is apple";
break;
case "bar":
echo "i is bar";
break;
case "cake":
echo "i is cake";
break;
}
"codetitle">复制代码 代码如下:
<"i equals 0";
case 1:
echo "i equals 1";
case 2:
echo "i equals 2";
}
"codetitle">复制代码 代码如下:
<"i is less than 3 but not negative";
break;
case 3:
echo "i is 3";
}
"codetitle">复制代码 代码如下:
<"i equals 0";
break;
case 1:
echo "i equals 1";
break;
case 2:
echo "i equals 2";
break;
default:
echo "i is not equal to 0, 1 or 2";
}
"codetitle">复制代码 代码如下:
<"codetitle">复制代码 代码如下:
400M
419430400
特别说明:$val = 400M时,case 'm' 被命中,其下的 $val *= 1024; 被执行,但因为没有 break 语言,所以会继续命中 case 'k',并执行其下的 $val *= 1024;语句,so,总体上相当于执行了 400 * 1024 * 1024 。