![零基础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=1738899608-wwTjd9Lmqa8mALebLHPnuK6BaVjoxMeN-0-359d5a60567642ea86c299f716372c9a)
PHP的if语句的格式为:
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/070-1.jpg?sign=1738899608-jMSYwarETUJ4EjbfOY73pRKfhLdiHg2n-0-7b06d6af2d3966ca023b23cdd054218b)
如果表达式的值为真,就顺序执行语句;否则,就会跳过该语句再往下执行。如果需要执行的语句不止一条,那么可以使用{},在{}中的语句被称为语句组,其格式为:
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/071-1.jpg?sign=1738899608-pJBLTmvySIKN3UTBjdx83nsM5Wx5nOm9-0-fde8f9cac4801ebd9f308e0001580ea9)
if语句的流程就像一辆运行的火车,从A站出发,可以直接到达C站,也可以经过B站,然后再到达C站,如图3.1所示。
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/071-2.jpg?sign=1738899608-xI8nMLVO885iIXxllJwXmJpucC0w3NI5-0-7dfb3742ef7f28ae5741f4f028b5dee0)
图3.1 if语句流程控制示意图
判断随机数是不是偶数
本实例使用rand()函数生成一个随机数$num,然后判断这个随机数是不是偶数,如果是偶数,则输出结果。代码如下:
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/071-3.jpg?sign=1738899608-X5ubH6GOtUW13tnYFc0bAgaRfP94wmbD-0-c38f4b9e541625490c1eaa098c598077)
运行结果如图3.2所示。
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/071-4.jpg?sign=1738899608-BIRL4LlJUVsnN4BKKwRQW4RPoPjIVP3r-0-d8ddf441a665e511c773e721e6c5353d)
图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=1738899608-8VADQsf6wA4Mb8pArDyqq4lD2ON3oz57-0-0c4ba2dd4d764d1035b7a0130f1a9c2b)
在大部分情况下,总是需要在满足某个条件时执行一条语句,而在不满足该条件时执行其他语句,这时可以使用if...else语句。if...else语句的语法格式为:
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/072-1.jpg?sign=1738899608-6uvcurHjLi1fmUDZKen5bbPzdWVDjqkF-0-6c1c48fc0411b0c68d976d793d879868)
该语句的含义为:如果表达式的值为真,则执行语句1;如果表达式的值为假,则执行语句2。就像一辆运行的火车,有两条轨道可以选择,如图3.3所示。
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/072-2.jpg?sign=1738899608-KlqwprnO73MLpuNE6I0qT200eoCvkxvi-0-240a34a46796f6ae58af4498c02e4295)
图3.3 if...else语句流程控制示意图
首先使用rand()函数生成一个随机数$num,然后判断这个随机数是偶数还是奇数,再根据不同结果显示不同的字符串。代码如下:
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/072-3.jpg?sign=1738899608-4Hk2QD1IeNxwNfbMph3tiZcH0s4Z0IO2-0-aeb3644e09035d0ce7bb53b82c98cba4)
3.1.3 elseif语句
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/40266-00-073-02.jpg?sign=1738899608-7R4orhUpvbqpl8VXwEXv21PGrJqUxYkV-0-f2e15916281700f3499432be9137c346)
if...else语句只能选择两种结果:要么执行语句1,要么执行语句2。但有时会出现两种以上的选择,例如:一个班的考试成绩,如果是90分以上的,则为“优秀”;如果是60分~90分之间的,则为“良好”;如果是低于60分的,则为“不及格”。这时可以使用elseif语句,elseif语句的语法格式为:
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/073-1.jpg?sign=1738899608-jWJMvqm2uF83dRbtKMhjIYWGIhqY3hM9-0-2a268bd2740fb7fd89a89a0962febf88)
elseif语句的流程就像一辆运行的火车,从A站出发到达B站,有多条线路可以选择,根据铁路局的不同指示,选择相应的路线,如图3.4所示。
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/073-2.jpg?sign=1738899608-2H4bUoJTqbFy1K0Wvnj4WrcVvZGI038t-0-be6dff70534d3f926fd98fe9fb264d72)
图3.4 elseif语句的流程控制示意图
判断今天是这个月的上旬、中旬或下旬
本实例将通过elseif语句,判断今天是这个月的上旬、中旬或下旬。代码如下:
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/073-3.jpg?sign=1738899608-dTQghWDo2vDLLzYZCfxsWQW41QtOVQzV-0-eb64074ab0433293f4b315e1bade9558)
运行结果如图3.5所示。
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/074-2.jpg?sign=1738899608-0ilRRXSjsIx9YbPwWTIMzhR3hz3xUEOz-0-a83a7dbdc19b3f84157aa282c249797d)
图3.5 判断今天是本月上旬、中旬或下旬
3.1.4 switch语句
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/40266-00-074-02.jpg?sign=1738899608-xQOhtLbsbYXdvGJWyei1rVhx4mPL1y9j-0-ef49d7e73c1713f1f5793710e9e084a2)
虽然elseif语句可以进行多种选择,但如果条件较多时,就会变得十分烦琐。为了避免if语句过于冗长,并且要提高程序的可读性,可以使用switch分支控制语句。switch语句的语法格式如下:
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/074-3.jpg?sign=1738899608-cvjfPs8T9u2Uhlc7gpmP2JALJCMRCRxD-0-fb9e81e18cf27d6659f742ba413940fe)
switch语句根据变量或表达式的值,依次与case中的常量表达式的值相比较,如果不相等,则继续查找下一个case;如果相等,则执行对应的语句,直到switch语句结束或遇到break为止。一般来说,switch语句最终都有一个默认值default,如果在前面的case中没有找到相符的条件,则输出默认语句,这和else语句类似。
选择第三方登录接口
明日学院网站支持第三方登录,第三方登录包括qq登录、微信登录、微博登录等。根据不同的登录方式,需要调用相应的第三方接口,这时,可以根据网址中传递值的不同,使用switch语句判断用户选择了哪一个第三方应用,然后调用该应用的接口。代码如下:
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/075-1.jpg?sign=1738899608-eZRa5OuBeSeeeYSNM3tFLyC6pCxzGTzK-0-c09b2c656964b05ae417dcf4e3caf490)
运行结果如图3.6所示。
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/075-2.jpg?sign=1738899608-ec6h6V90xH3oIdR81Cdp9uwJ9Wdgk6bV-0-871a952727b969752c5709d3efee21db)
图3.6 switch多重判断语句
学习笔记
switch语句在执行时,即使遇到符合要求的case语句段,也会继续往下执行,直到switch语句结束。为了避免浪费时间和资源,一定要在每个case语句段后加上break语句。这里break语句的意思是跳出当前循环,在3.3.1节中将详细介绍break语句。