PHP switch

示例

该switch结构执行与一系列if语句相同的功能,但是可以用更少的代码行完成这项工作。switch比较语句中定义的要测试的值与每个case语句中的值是否相等,直到找到匹配项并执行该块中的代码为止。如果找不到匹配的case语句,default则执行块中的代码(如果存在)。

case或default语句中的每个代码块都应以该break语句结尾。这将停止执行switch结构,并在此后立即继续执行代码。如果break省略该case语句,即使没有match将执行下一条语句的代码。如果break忘记了该语句,这可能会导致意外的代码执行,但在多个case语句需要共享同一代码的情况下也很有用。

switch ($colour) {
case "red":
    echo "the colour is red";
    break;
case "green":
case "blue":
    echo "the colour is green or blue";
    break;
case "yellow":
    echo "the colour is yellow";
    // 注意缺少中断,下一个程序段也将执行
case "black":
    echo "the colour is black";
    break;
default:
    echo "the colour is something else";
    break;
}

除了测试固定值之外,还可以通过为语句提供布尔值和为switch语句提供任何表达式来强制构造以测试动态case语句。请记住,使用的是第一个匹配值,因此以下代码将输出“大于100”:

$i = 1048;
switch (true) {
case ($i > 0):
    echo "more than 0";
    break;
case ($i > 100):
    echo "more than 100";
    break;
case ($i > 1000):
    echo "more than 1000";
    break;
}

有关在使用switch构造时键入松散的可能问题,请参阅切换惊喜