PHP8条件控制语句-PHP8知识详解

我们昨天说了流程控制的结构有顺序结构选择结构循环结构选择结构就是条件结构。

条件控制语句就是对语句中不同条件的值进行判断,进而根据不同的条件执行不同的语句。

在本文中,学习的是if语句、if...else语句、if...elseif语句和switch语句。

1、if语句

if语句是最为常见的条件控制语句。它的格式为:

复制代码
if(条件判断语句)
{
    执行语句;
}

这种形式只是对一个条件进行判断。如果条件成立,则执行命令语句,否则不执行。

如果<条件>成立(为true时)则执行<语句块>,如果条件不成立(为false)时,则继续执行"}"后面的语句。如:

复制代码
<?https://www.phpfw.com/tag/php/
$num = 12;  
if($num%2==0)  
{  
    echo "$num","是一个偶数";  
}
?>

执行结果如下:

复制代码
12是一个偶数

2、if...else语句

在条件成立时执行一块代码,条件不成立时执行另一块代码,请使用 if...else 语句。格式如下:

复制代码
if (条件判断语句)
{
执行语句1;
}
else
{
执行语句2;
}

当条件成立时执行<语句块1>,条件不成立时执行<语句块2>。如下面的代码:

复制代码
<?php
$num = 11;
if ($num % 2 == 0) {
    echo $num, '是一个偶数';
} else {
    echo $num, '不是一个偶数';
}
?>

运行结果如下:

复制代码
11不是一个偶数

3、if...elseif语句

在条件控制语句中,有时会出现多余两种的选择,可以使用if...elseif语句,它的语法格式如下:

复制代码
if(<条件1>)  
{  
    <语句块1>  
}  
elseif(<条件2>)  
{  
    <语句块2>  
}  
elseif(<条件n>)  
{  
    <语句块n>  
}

如下面的考试分数评级,代码如下:

复制代码
$score = 55;  
if($score>=90){  
    echo '优秀';  
}elseif($score>=80 && $score<90){  
    echo '好';  
}elseif($score>=70 && $score<80){  
    echo '良';  
}elseif($score>=60 && $score<70){  
    echo '及格';  
}else{  
    echo '不及格';  
}

输出结果如下:

复制代码
不及格

4、switch 语句

switch 语句的结构给出不同情况下可能执行的程序块,条件满足哪个条件块,就执行哪个。它的语法格式为:

复制代码
switch (条件判断语句)
{
case 判断结果a:
执行语句1;
break;
case 判断结果b:
执行语句2;
break;
......
default:
执行语句n;
}

"条件判断语句"的结果符合哪个可能的"判断结果",就执行其对应的"执行语句"。如果都不符合,则执行default对应的默认"执行语句n"。

我们用一个示例:

复制代码
<?php
switch(date("D")){
    case "Mon":
        echo "今天星期一<br/>";
        break;
    case "Tue":
        echo "今天星期二<br/>";
        break;
    case "Wed":
        echo "今天星期三<br/>";
        break;
    case "Thu":
        echo "今天星期四<br/>";
        break;
    case "Fri":
        echo "今天星期五<br/>";
        break;
	case "Sat":
        echo "今天星期六<br/>";
        break;
    default:
        echo "今天星期天";
}
?>

运行结果如下:

复制代码
今天星期六

温馨提示:运行上面的代码,每个人运行的时间不同,显示的结果不同,本文发布的时间是:2023年8月5日 星期六。

到此为止,if语句、if...else语句、if...elseif语句和switch语句就讲解完毕了。

相关推荐
扫地的小何尚3 小时前
NVIDIA Dynamo深度解析:如何优雅地解决LLM推理中的KV缓存瓶颈
开发语言·人工智能·深度学习·机器学习·缓存·llm·nvidia
yi碗汤园4 小时前
【一文了解】C#的StringSplitOptions枚举
开发语言·前端·c#
无敌最俊朗@5 小时前
C++ 序列容器深度解析:vector、deque 与 list
开发语言·数据结构·数据库·c++·qt·list
Da Da 泓5 小时前
LinkedList模拟实现
java·开发语言·数据结构·学习·算法
MOON404☾5 小时前
基于TCP的简易端口扫描器
网络·tcp/ip·php
Humbunklung6 小时前
VC++ 使用OpenSSL创建RSA密钥PEM文件
开发语言·c++·openssl
Humbunklung6 小时前
填坑:VC++ 采用OpenSSL 3.0接口方式生成RSA密钥
开发语言·c++·rsa·openssl 3.0
zl21878654487 小时前
Playwright同步、异步、并行、串行执行效率比较
开发语言·python·测试工具
Tony Bai8 小时前
【Go开发者的数据库设计之道】05 落地篇:Go 语言四种数据访问方案深度对比
开发语言·数据库·后端·golang
gopyer8 小时前
180课时吃透Go语言游戏后端开发3:Go语言中其他常用的数据类型
开发语言·游戏·golang·游戏后端开发