1.9. if ,switch
持之以恒,方得始终!
条件判断,在程序中几乎无所不在,举个最简单的例子,我们接受用户的参数进来,就得做各种条件判断,比如是否是数值,在什么范围,是否是数组,字符串,是哪些字符串。
if
if ($totalqty == 0) { // 条件为true时,就会执行 {} 中
echo "没有下单任何物品";
}
if…else
if ($totalqty == 0) {
echo "没有下单任何物品";
} else {
echo "下单总数为" . $totalqty;
}
嵌套的 if…else
一般项目中,不可能总是很简单的判断,很可能判断里面还有判断。所以我们也不得不在if,else中,再次使用 if… else 。
if ($totalqty == 0) {
echo "下单数不能为0";
} else {
if ($tireqty > 0) {
echo "$tireqty tires";
}
if ($oilqty > 0) {
...
}
if ($sparkqty > 0) {
...
}
}
if…elseif…else
if ($tireqty < 10) {
$discount = 0;
} elseif ($tireqty >= 10 && $tireqty <= 49) {
$discount = 5;
} elseif ($tireqty >= 50 && $tireqty <= 99) {
$discount = 10;
} elseif ($tireqty >= 100) {
$discount = 15;
}
使用这种多条件判断时,我们要注意:
- 一般这种,多个条件都应该是互斥的,如果不是,则按顺序走,谁先被判断为true,谁先执行。
- 执行了一个if里面的代码块后,其他条件都不会再走了,整个if分支结束了。
switch
在我们的订单页面插入一个广告途径收集的
<tr>
<td>How did you find Bob's?</td>
<td>
<select name="find">
<option value="a">I'm a regular customer</option>
<option value="b">TV advertising </option>
<option value="c">Phone directory</option>
<option value="d">Word of mouth</option>
</select>
</td>
</tr>
订单处理脚本中,可以用switch处理
$find = $_REQUEST['find'];
switch($find) {
case 'a':
echo "<p>regular customer.</p>";
break;
case 'b':
echo "<p>customer referred by tv advert</p>";
break;
case 'c':
echo "<p>customer referred by phone directory</p>";
break;
case 'd':
echo "<p>customer referred by word of mouth</p>";
break;
default:
echo "<p>we do not know how this customer fount us</p>";
break;
}
其实我们也可以看到,上面的例子,用if结构,也完全可以的。
另外,如果 case 中的代码,最后没有给 break,则会直接执行下一个 case 中的代码,直到遇到 break 才会跳出这个 switch
还有,default 也不是必须要写的。
我们再看下一个例子
$week = date('N');
$do = '';
switch($week) {
case 1:
case 2:
case 3:
case 4:
case 5:
$do = "go to work";
break;
case 6:
case 7:
$do = "go to shopping";
break;
default:
$do = "in home";
}
var_dump($do);
如有任何侵权行为,请通知我删除,谢谢大家!
个人邮箱:865460609@qq.com