![PHP入门很轻松(微课超值版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/100/44510100/b_44510100.jpg)
2.6.1 条件控制结构
条件控制语句中包含两个主要的语句,一个是if语句,另一个是switch语句。
1.单一条件分支结构(if语句)
if语句是最为常见的条件控制语句,它的语法格式如下:
![](https://epubservercos.yuewen.com/C06CD9/23721570201955106/epubprivate/OEBPS/Images/Figure-P40_36810.jpg?sign=1738873420-bnhscPsthmt2bzeCSolHOLhjcKUqrwFQ-0-d692af01169d2d3f269f54a93ef8a809)
这种形式只是对一个条件进行判断。如果条件成立,就执行命令语句,否则不执行。
if语句的流程控制图如图2-19所示。
【例2-19】判断随机数是否是奇数(实例文件:源文件\ch02\2.19.php)。
![](https://epubservercos.yuewen.com/C06CD9/23721570201955106/epubprivate/OEBPS/Images/Figure-P40_36811.jpg?sign=1738873420-CK9u4jl4VrFRp8SxPgFPM3yzhKGXiGbU-0-867f672d0090bdade22cc1d92db2c1c5)
运行结果如图2-20所示。
![](https://epubservercos.yuewen.com/C06CD9/23721570201955106/epubprivate/OEBPS/Images/Figure-P40_36612.jpg?sign=1738873420-JflVHGhzZKGeAvv1Hte8Z3XYcfyx5wPA-0-9b1c9ac062789147ba487355424e545c)
图2-19 if语句流程控制图
![](https://epubservercos.yuewen.com/C06CD9/23721570201955106/epubprivate/OEBPS/Images/Figure-P40_3276.jpg?sign=1738873420-3e2pgJD77sH3VlhTbTO333yxnxYZZ27s-0-6d7a3df2afcc74f0c08bd30cefeaee94)
图2-20 if语句
2.双向条件分支结构(if…else语句)
如果是非此即彼的条件判断,可以使用if…else语句。它的语法格式如下:
![](https://epubservercos.yuewen.com/C06CD9/23721570201955106/epubprivate/OEBPS/Images/Figure-P40_36812.jpg?sign=1738873420-4cGb8ldYP4vAcVMzQCFkk8BndhKzxQtY-0-12e29275cf15e6628a01de4d4b1ae2bb)
这种结构形式首先判断条件是否为真,如果为真,就执行命令语句A,否则执行命令语句B。
if…else语句的流程控制图如图2-21所示。
【例2-20】判断随机数是奇数还是偶数(实例文件:源文件\ch02\2.20.php)。
![](https://epubservercos.yuewen.com/C06CD9/23721570201955106/epubprivate/OEBPS/Images/Figure-P40_36813.jpg?sign=1738873420-SIOJHI1g4GxtSRw5fhTbe6eEQFdhhzSl-0-dc143e76afe30f1b0821e6142e419acb)
运行结果如图2-22所示。
![](https://epubservercos.yuewen.com/C06CD9/23721570201955106/epubprivate/OEBPS/Images/Figure-P41_3375.jpg?sign=1738873420-531riaicXjDeVXIx3J9x4v1gAl3kQ6t4-0-df399e6cf01546be28a147c6e9c26715)
图2-21 if…else语句流程控制图
![](https://epubservercos.yuewen.com/C06CD9/23721570201955106/epubprivate/OEBPS/Images/Figure-P41_3378.jpg?sign=1738873420-ZJ5Yp00rsvFvA37dXyUPBSSdwUYUEF3U-0-732aeec13a5a81fe34e2aad8bb1a8e70)
图2-22 if…else语句
3.多向条件分支结构(elseif语句)
在条件控制结构中,有时会出现多种选择,此时可以使用elseif语句。它的语法格式如下:
![](https://epubservercos.yuewen.com/C06CD9/23721570201955106/epubprivate/OEBPS/Images/Figure-P41_36815.jpg?sign=1738873420-k1AVJYuSe4nAinFdxHqj9BHoJ9rAL87P-0-3fca2c030c26560bda034bf1503ee66a)
elseif语句的流程控制图如图2-23所示。
![](https://epubservercos.yuewen.com/C06CD9/23721570201955106/epubprivate/OEBPS/Images/Figure-P41_3430.jpg?sign=1738873420-MZuTPI6tSR0I8yRZ1JFKWTb6WliV2BQN-0-2be26f95d69810a55feac6028eb2e6c2)
图2-23 elseif语句流程控制图
【例2-21】判断成绩的等级(实例文件:源文件\ch02\2.21.php)。
![](https://epubservercos.yuewen.com/C06CD9/23721570201955106/epubprivate/OEBPS/Images/Figure-P41_36816.jpg?sign=1738873420-BaxMIrbxpuor4lAgJEnKlif8KbGldOXJ-0-39a247f7df6e9c640d29f42fb4a9787a)
运行结果如图2-24所示。
![](https://epubservercos.yuewen.com/C06CD9/23721570201955106/epubprivate/OEBPS/Images/Figure-P42_3507.jpg?sign=1738873420-XUMBSG3b05fGszqoJMJdp1vskTr0raSp-0-a84bb176ae5e299d6abd815db141b51a)
图2-24 elseif语句
4.多向条件分支结构(switch语句)
switch语句的结构给出不同情况下可能执行的程序块,条件满足哪个程序块,就执行哪条语句。它的语法格式如下:
![](https://epubservercos.yuewen.com/C06CD9/23721570201955106/epubprivate/OEBPS/Images/Figure-P42_36818.jpg?sign=1738873420-9NZbtzDHfd2LH9bryW6KJJTv79IeJcEE-0-42ed85a4536c1357019cde29b96dc6a2)
其中,若“条件判断语句”的结果符合某个“可能判断结果”,就执行其对应的“命令执行语句”。如果都不符合,则执行default对应的默认项的“命令执行语句”。
switch语句的流程控制图如图2-25所示。
![](https://epubservercos.yuewen.com/C06CD9/23721570201955106/epubprivate/OEBPS/Images/Figure-P42_36615.jpg?sign=1738873420-ZXLf2mKYYN4QGiz8I9Wx6kNu8dkkefwa-0-8fd58560ca94477245e0c6d0c977f37a)
图2-25 switch语句流程控制图
【例2-22】使用switch语句(实例文件:源文件\ch02\2.22.php)。
![](https://epubservercos.yuewen.com/C06CD9/23721570201955106/epubprivate/OEBPS/Images/Figure-P42_36822.jpg?sign=1738873420-92kHaHu0XQ4fomaYtjiLZEBlfh5UPxv0-0-6b8774638f58f70386c737669704f281)
运行结果如图2-26所示。首先定义一个变量$fruit,值为“苹果”,把$fruit传入switch语句中,然后进行匹配,若匹配到则执行相应代码,若匹配不到则执行default。
![](https://epubservercos.yuewen.com/C06CD9/23721570201955106/epubprivate/OEBPS/Images/Figure-P43_3701.jpg?sign=1738873420-4giEki9LLD525hdbgKhG3RzUqgjAKmZe-0-0cc3d50a3ec6cea571bb6d643ed58dbd)
图2-26 switch语句
☆大牛提醒☆
switch语句与elseif语句都可以进行多重选择,但是在不同的情况下运行的效率是不一样的。当被判断的值为常量(固定不变的值)时,switch语句的运行效率高于elseif语句;当被判断的值为变量时,elseif语句的运行效率高于switch语句。