专题讲座:光盘\MR\Video\5\条件控制语句.exe
视频速递:全面剖析PHP的条件控制语句
所谓条件控制语句就是对语句中不同条件的值进行判断,进而根据不同的条件执行不同的语句。在条件控制语句中主要有两个语句:if条件控制语句和switch多分支语句。
if条件控制语句是所有流程控制语句中最简单、最常用的一个,根据获取的不同条件判断执行不同的语句。其应用范围十分广泛,无论程序大小几乎都会应用到该语句。其语法如下。
参数expr按照布尔求值。如果expr的值为True,将执行statement;如果值为False,则忽略statement。if语句可以无限层地嵌套到其他if语句中去,实现更多条件的执行。
else的功能是当if语句在参数expr的值为False时执行其他语句,即在执行的语句不满足该条件时执行else后大括号中的语句。
在同时判断多个条件的时候,PHP提供elseif的语句来扩展需求。elseif语句被放置在if和else语句之间,满足多条件同时判断的需求。
if语句的流程如图5.7、图5.8和图5.9所示。
图 5.7 if语句流程图
图 5.8 if…else语句流程控制图
图 5.9 elseif语句的流程控制图
下面以实例的形式展示if条件语句的强大的功能。
【例5.1】 通过if语句判断用户提交的登录信息是否为空。具体实现如下。
实例位置:光盘\MR\ Instance\5\5.1
创建index.php文件,创建一个用户登录页面,提交登录的用户名和密码。然后,在页中通过$_POST[]方法获取表单中提交的用户名和密码,并且应用if语句判断用户提交的登录信息是否为空,程序关键代码如下。
运行结果如图5.10所示。
图 5.10 用户登录模块的实现
switch语句和if条件控制语句类似,实现将同一个表达式与很多不同值的比较,获取相同的值,并且执行相同的值对应的语句,其语法如下。
参数expr:是表达式的值,即switch语句的条件变量的名称。
参数expr1:放置在case语句之后,是要与条件变量expr进行匹配的值中的一个。
statement1:是在参数expr1的值与条件变量expr的值相匹配时执行的代码。
break语句:终止语句的执行,即当语句在执行过程中,遇到break就停止执行,跳出循环体。
default:是case的一个特例,匹配任何其他case都不匹配的情况,并且是最后一条case语句。
switch语句的流程控制如图5.11所示。
图 5.11 switch语句流程控制图
上述讲解的是switch语句的工作流程,下面就编写一个实例,看一下switch语句在实际中的应用。
【例5.2】 通过switch语句判断当前日期并且根据当前日期给出提示信息。具体实现如下。
本例中使用switch语句来输出当天为星期几,并根据不同的日期输出不同的贴心提醒警句,实例代码如下。
运行结果如图5.12所示。
图 5.12 输出贴心提醒警句
if和switch语句可以从使用的效率上来进行区别,也可以从实用性角度去区分。如果从使用的效率上进行区分,在对同一个变量的不同值做条件判断时,使用switch语句的效率相对更高一些,尤其是判断的分支越多越明显。
如果从语句实用性的角度去区分,那switch语句肯定不如if条件语句。if条件语句是实用性最强和应用范围最广的语句。
在程序开发的过程中,if和switch语句的使用应该根据实际的情况而定,不要因为switch语句的效率高就一味地使用,也不要因为if语句常用就不应用switch语句。要根据实际的情况,具体问题具体分析,使用最适合的条件语句。一般情况下可以使用if条件语句,但是在实现一些多条件的判断中,特别是在实现框架的功能时就应该使用switch语句。
条件语句的应用,小到一个简单的判断登录用户权限的模块,大到高负载、高访问量的大型网站的整个程序中都会有它的身影,如何更好地掌握if条件语句的应用呢?其实很简单,每个应用语句都有其特点和使用原则,特别是在多层嵌套的if语句中它的应用原则是,无论多少层语句的嵌套,只要找到if语句开始处和闭合处一般就不会产生逻辑错误。
【例5.3】 本应用的主要内容来源于网络上的一个笑话,其主要内容为一女子让计算机为其征婚,开出征婚条件有两点。1.要帅,2.要有车。计算机为她搜寻到了结果,回答她说:女士您搜寻的是象棋吗?这位女子不愿接受此次搜寻的结果又重新输入条件,1.要有漂亮的房子,2.要有很多钱。计算机为她再次搜寻了结果:女士,您搜寻的是银行吗?此女子仍然不崩溃,继续输入条件,1.要长得酷,2.要有安全感,结果计算机搜出的是:女士,您搜寻的是奥特曼吗?此女子想尝试最后一次,于是输入条件,1.要帅,2.要有车,3.要有漂亮的房子,4.要有很多钱,5.要长得酷,6.有安全感。计算机搜寻了很久回答道:哦,女士,我知道了,您搜寻的是奥特曼在银行里下象棋。实现本应用的具体步骤如下。
(1)自定义函数,通过定义页面的布局,动态地向页面中插入文本和提交按钮的value属性值。其具体方法是,首先定义两个<div>标签,在内层的<div>标签中定义<p>标签,利用插入PHP代码的形式动态接收自定义函数首部$str参数。提交按钮<input>标签中在value属性值的位置也使用同样的方法接收参数,其具体代码如下。
(2)利用if…else…语句和if…elseif…语句嵌套的形式,根据接收文本框参数的不同,输出对应的页面信息,其代码如下。
程序的运行结果如图5.13所示。
图 5.13 if语句判断美女征婚条件
网页框架是PHP脚本编程中很重要的一部分,良好的框架制作手法相当于一件了不起的工艺品,是一种逻辑思维上的提升,说到网页框架,大家不妨设想一下,中国的万里长城举世闻名,历经千年风霜依然屹立不倒,它的雄壮和威武离不开建造者对其框架结构的严谨修葺,如果只是简简单单的石料堆砌,可想而知我们今天的万里长城也只是几千年前的一颗流星转瞬即逝,只存在于那些考古人员的追忆当中了。网页框架,也是一样。
【例5.4】 通过switch语句实现一个简单的框架功能,即在网站的主页面中,单击不同的超级链接,分别调用不同的网页显示于主页面中。充分发挥超级链接中栏目标识的作用,将栏目标识作为switch语句的表达式的值,根据不同的栏目标识调用不同的网页。
本应用实现的步骤是:首先判断当页面中存在$_GET[id]的值或者当$_GET[id]的值为空时。将$_GET[id]的值保存在变量$string中,利用switch语句结构根据接收到的参数不同包含不同的页面,程序关键代码如下。
运行结果如图5.14所示。
图 5.14 应用switch语句实现框架的功能