PHP switch声明
介绍
如果程序需要一系列的if语句来执行不同的过程来改变表达式的值,则每个if语句都有自己的大括号,这可能会变得很笨拙。在这里,使用swtich-case构造可以使程序紧凑且易读。使用switch构造,可以将相同的变量(或表达式)与许多不同的值进行比较,并根据其等于哪个值来执行不同的代码段。
语法
switch (expr) { case val1: code to be executed if expr=val1; break; case val2: code to be executed if expr=val2; break; ... ... default: code to be executed if expr is not equal to any of above values; }
在每个case块之后给出break语句很重要,这样可以使剩下的case程序流无效。
在下面的示例中,要求用户输入两个数字和一个数字,作为算术运算类型的1/2/3/4,用于加/减/乘/除
示例
<?php $first=(int)readline("enter a number"); $second=(int)readline("enter another number"); $x=readline("enter 1/2/3/4 for add/subtract/multiply/divide"); $result=0; switch($x){ case 1: echo $first+$second; break; case 2: echo $first-$second; break; case 3: echo $first*$second; break; case 4: echo $first/$second; break; default: echo "Incorrect input"; } ?>
输出结果
这将产生以下结果-
Incorrect input
的默认如果开关表达式不匹配特定的情况下要执行的关键字用于指定语句块
如果特定案例块为空,则将流程简单地传递到下一个案例。
示例
<?php $x=(int)readline("enter a number"); switch($x){ case 1: case 2: echo "x is less than 3"; break; case 3: echo "x is equal to 3"; break; case 4: echo "x is greater than 3";break; default: echo "x is beyound 1 to 4"; } ?>
输出结果
这将产生以下结果-
x is beyound 1 to 4
可以使用字符串值与开关表达式进行比较
示例
<?php $x=readline("enter a something.."); switch($x){ case "India": echo "you entered India"; break; case "USA": echo "You typed USA"; break; case "Mumbai": echo "you entered Mumbai";break; default: echo "you entered something else"; } ?>
输出结果
这将产生以下结果-
you entered something else