![零基础PHP学习笔记](https://wfqqreader-1252317822.image.myqcloud.com/cover/195/36710195/b_36710195.jpg)
3.1 条件控制语句
在生活中,我们总是要做出许多决策,程序也一样。下面给出几个常见的例子:
• 如果购买商品成功,用户余额减少,用户积分增多。
• 如果输入的用户名和密码正确,提示登录成功,则可以进入网站,否则,提示登录失败。
• 如果用户使用微信登录,则使用微信扫一扫;如果使用QQ登录,则输入QQ号和密码;如果使用微博登录,则输入微博号和密码;如果使用手机号登录,则输入手机号和密码。
以上示例就是程序中的条件控制语句。按照条件选择执行不同的代码片段。条件控制语句主要有if、if...else、if...elseif...else和switch,下面分别进行讲解。
3.1.1 if语句
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/40266-00-070-01.jpg?sign=1739553911-AEdA65Pxxfcn64EiNGUFW33Zlj9FLvN8-0-3aa114df1fc634437c2b77abdf28af65)
PHP的if语句的格式为:
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/070-1.jpg?sign=1739553911-dCBEmLWIas29UjDxuft3AzvlP3x24dl2-0-cb95ebb6e08e6e30793976a50743dad0)
如果表达式的值为真,就顺序执行语句;否则,就会跳过该语句再往下执行。如果需要执行的语句不止一条,那么可以使用{},在{}中的语句被称为语句组,其格式为:
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/071-1.jpg?sign=1739553911-w23kKkDARrhEexckZJLijYosJCyYEcDt-0-a32b8f5df79413553cf1baf06b567231)
if语句的流程就像一辆运行的火车,从A站出发,可以直接到达C站,也可以经过B站,然后再到达C站,如图3.1所示。
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/071-2.jpg?sign=1739553911-2w5kqh8dHnCFrZ4bFwUeSNCRH3mDmgSX-0-996701d8f8cc02d324422d91687a87bc)
图3.1 if语句流程控制示意图
判断随机数是不是偶数
本实例使用rand()函数生成一个随机数$num,然后判断这个随机数是不是偶数,如果是偶数,则输出结果。代码如下:
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/071-3.jpg?sign=1739553911-vLRmu0xy9JN2mYdBXrtDT7671URMdKrE-0-b5becf8c6c7df60481f64b4d7a0ea535)
运行结果如图3.2所示。
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/071-4.jpg?sign=1739553911-ZnqlOIzW6gMpiAGEVsuWEiHUSgj06xPZ-0-a9df5e67aa5f07ba41b3e7071f06c832)
图3.2 判断随机数是不是偶数
学习笔记
rand()函数的作用是取得一个随机的整数。每次刷新页面后,会生成一个新的随机数,可能与图3.2所示的运行结果不同。
3.1.2 if...else语句
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/40266-00-072-02.jpg?sign=1739553911-aNUVj4bKvCSHqkRaghdc5aQuoPlQKVsR-0-7da2cb7e0bc56ea31aaffe9357e756ee)
在大部分情况下,总是需要在满足某个条件时执行一条语句,而在不满足该条件时执行其他语句,这时可以使用if...else语句。if...else语句的语法格式为:
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/072-1.jpg?sign=1739553911-onDlzawXx9lMoERJJIrcr6TjtuJODb9P-0-ed6426459c42c459b58e2dca3b3addab)
该语句的含义为:如果表达式的值为真,则执行语句1;如果表达式的值为假,则执行语句2。就像一辆运行的火车,有两条轨道可以选择,如图3.3所示。
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/072-2.jpg?sign=1739553911-I80yGlgcVgM9y1EGpkyTvbfMwlUoSbzK-0-7d5072502928f2fa5161c71b0386c61c)
图3.3 if...else语句流程控制示意图
首先使用rand()函数生成一个随机数$num,然后判断这个随机数是偶数还是奇数,再根据不同结果显示不同的字符串。代码如下:
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/072-3.jpg?sign=1739553911-HTUq4iU4PwsvcT9q3hdecuEY1Ui0jZY8-0-41d1348a35614a7c3107d3c831c195d1)
3.1.3 elseif语句
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/40266-00-073-02.jpg?sign=1739553911-xZu3SvSPvpYFNuBxfiQOLfBMv2itQgPX-0-4e87778ddf666a2f7aa0f1e5967f2d7c)
if...else语句只能选择两种结果:要么执行语句1,要么执行语句2。但有时会出现两种以上的选择,例如:一个班的考试成绩,如果是90分以上的,则为“优秀”;如果是60分~90分之间的,则为“良好”;如果是低于60分的,则为“不及格”。这时可以使用elseif语句,elseif语句的语法格式为:
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/073-1.jpg?sign=1739553911-MqH9M5i3N8YQRRCqFFE65mTMTdJgknzY-0-3c9b6e53fdf2011c4b0317c6fe7c6cc3)
elseif语句的流程就像一辆运行的火车,从A站出发到达B站,有多条线路可以选择,根据铁路局的不同指示,选择相应的路线,如图3.4所示。
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/073-2.jpg?sign=1739553911-dQHw3o8YOR0EnIYH1zeSsVP8ZmkbaVmv-0-ee5733c522150bb0117df4f90ffe336f)
图3.4 elseif语句的流程控制示意图
判断今天是这个月的上旬、中旬或下旬
本实例将通过elseif语句,判断今天是这个月的上旬、中旬或下旬。代码如下:
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/073-3.jpg?sign=1739553911-upB69icpfnCDl9TgmwQ3U1qp8WaTwvQj-0-6216f8050ba5ae970bf2d1940474661f)
运行结果如图3.5所示。
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/074-2.jpg?sign=1739553911-Wdw7rBw9bABY411SA5PAwms6ppRABovs-0-bb0b21073e3ddf0fe8ce2a238fed09a5)
图3.5 判断今天是本月上旬、中旬或下旬
3.1.4 switch语句
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/40266-00-074-02.jpg?sign=1739553911-PZd02PBIWeB1B5lz0zPIHtnleIguEqv1-0-4d72bbbecc98f19d9e1befbc35a040e1)
虽然elseif语句可以进行多种选择,但如果条件较多时,就会变得十分烦琐。为了避免if语句过于冗长,并且要提高程序的可读性,可以使用switch分支控制语句。switch语句的语法格式如下:
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/074-3.jpg?sign=1739553911-eCrwuGFJvruAUiFuu7J0kOqUmKrNgJqL-0-45c47988b6d318ddbeddf4d5cafbb8f2)
switch语句根据变量或表达式的值,依次与case中的常量表达式的值相比较,如果不相等,则继续查找下一个case;如果相等,则执行对应的语句,直到switch语句结束或遇到break为止。一般来说,switch语句最终都有一个默认值default,如果在前面的case中没有找到相符的条件,则输出默认语句,这和else语句类似。
选择第三方登录接口
明日学院网站支持第三方登录,第三方登录包括qq登录、微信登录、微博登录等。根据不同的登录方式,需要调用相应的第三方接口,这时,可以根据网址中传递值的不同,使用switch语句判断用户选择了哪一个第三方应用,然后调用该应用的接口。代码如下:
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/075-1.jpg?sign=1739553911-X41E9CEDVdcdpTqfVIwTJUj1cfzet6s3-0-378df5bd7e104790b755a32842cc826d)
运行结果如图3.6所示。
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/075-2.jpg?sign=1739553911-YHa6iRmXvzogZHzYWWENy7TnoXv14Gnr-0-c8cc886fa9340a2675f00a11bf6b07a5)
图3.6 switch多重判断语句
学习笔记
switch语句在执行时,即使遇到符合要求的case语句段,也会继续往下执行,直到switch语句结束。为了避免浪费时间和资源,一定要在每个case语句段后加上break语句。这里break语句的意思是跳出当前循环,在3.3.1节中将详细介绍break语句。