#1.9 条件判断
上面章节讲述了条件判断语句的使用,以及常用的操作符。
下面我们使用逻辑运算符,配置选择分支程序,做一些功能。
以较为熟悉的学习成绩输出为例。60分以下,显示不及格;60-80分以下,显示及格;80-100分以下,显示优秀;100分,显示满分;其他的都是不合格的数据。
代码像下面这样:
$score = 68;
if ($score < 60) {
print("不及格");
} elseif ($score < 80) {
print('及格');
} elseif ($score < 100) {
print('优秀');
} elseif ($score === 100) {
print('满分');
} else {
print('分数无效');
}
为了能能够重复使用这个功能,而不是来一个数,写一堆判断,这样做了很多重复工作。我们先提前将,把这个功能封装为一个函数。如下:
/**
* @param $score 分数
* @return string 返回 字符串
*/function check_score($score){
if ($score < 60) {
return "不及格";
} elseif ($score < 80) {
return '及格';
} elseif ($score < 100) {
return '优秀';
} elseif ($score === 100) {
return '满分';
} else {
return '分数无效';
}
}
好了,有了这个封装函数,我们可以使用一系列的值进行输出测试了。我们准备了各个阶段的分数值,看能不能正确输出:
print(check_score(45));
print(check_score(60));
print(check_score(78));
print(check_score(89));
print(check_score(98));
print(check_score(100));
print(check_score(-9));
print(check_score(125));
在浏览器内输入网址 www.array.com/chapter1.5.php ,查看返回结果。为了直观,和简单的样式,我们使用 bootstrap 提供的 css 样式渲染前端页面,使结果看上去更为直观。
我们发现程序按照我们预期的结果进行了输出,这就是我们要的结果。
# 1.10 选择分支
选择分支语句,除了上面的if…else…,好友一个 switch …case…这个常用的语法结构。
如果处理复杂的应用场景,if…else…多层嵌套,已经使程序结构变得过于复杂,难以维护。这时候可以考虑一下switch语句,看能不能给逻辑结构带来清晰的效果。
上面一段代码,是某国产开源商城系统内容的一段代码。嵌套的if语句,对不同场景进行处理。下面再看一段使用switch处理的场景。
这一段实现的额功能,是根据传入的数字,也就是日志记录类型,进行响应的时间区域的sql查询。
如果=1,显示为过去一周;
如果=2,显示为过去一个月;
如果=3,过去三个月;
如果=4,过去半年;
如果=5,过去一年。
因为log_type在使用之前就已经约定好,却有明确的返回值,所以使用switch…case…能免去一堆elseif的窘境。
大家注意case中必须明确地使用break跳出分支。不能省去。如果没有写,可是会一撸到底的。满足条件即执行。写程序的时候,一定不要犯语法的错误。