#1.9 条件判断
上面章节讲述了条件判断语句的使用,以及常用的操作符。
下面我们使用逻辑运算符,配置选择分支程序,做一些功能。
以较为熟悉的学习成绩输出为例。60分以下,显示不及格;60-80分以下,显示及格;80-100分以下,显示优秀;100分,显示满分;其他的都是不合格的数据。
代码像下面这样:
代码语言:javascript复制$score = 68;if ($score < 60) { print("不及格");} elseif ($score < 80) { print('及格');} elseif ($score < 100) { print('优秀');} elseif ($score === 100) { print('满分');} else { print('分数无效');}
为了能能够重复使用这个功能,而不是来一个数,写一堆判断,这样做了很多重复工作。我们先提前将,把这个功能封装为一个函数。如下:
代码语言:javascript复制/** * @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 '分数无效'; }}
好了,有了这个封装函数,我们可以使用一系列的值进行输出测试了。我们准备了各个阶段的分数值,看能不能正确输出:
代码语言:javascript复制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跳出分支。不能省去。如果没有写,可是会一撸到底的。满足条件即执行。写程序的时候,一定不要犯语法的错误。