PHP流程控制

目录

if语句

else语句

elseif语句

while语句

do-while语句

for语句

foreach语句

break

continue

switch语句

match表达式

return

include

include_once

require

require_once

goto


流程控制是指用于控制代码执行顺序的机制,PHP提供了多种流程控制结构,例如条件判断语句以及循环语句等。

if语句

if 语句是很多语言包括 PHP 在内最重要的特性之一,它允许按照条件执行代码片段。它的结构:if (条件) {代码},也就是说如果满足判断条件就会执行结构体里面的代码。

#示例

php 复制代码
<?php
    $a = 10;
    if ($a  > 9) {
        echo "变量a比9大";
    }

执行结果

php 复制代码
变量a比9大

else语句

如果满足某个条件执行某些代码,不满足则执行另外的代码,这就是else的功能。

#示例

php 复制代码
<?php
    $a = 7;
    if ($a  > 9) {
        echo "变量a比9大";
    } else {
        echo "变量a比9小";
    }

执行结果

php 复制代码
变量a比9小

elseif语句

如果需要根据成绩来划分不及格、及格、良好、优秀时,简单的if-else就不能满足了,elseif就是它的延伸。

#示例

php 复制代码
<?php
    $score = 80;
    if ($score  < 60) {
        echo "不及格";
    } elseif ($score < 70) {
        echo "及格";
    } elseif ($score < 85) {
        echo "良好";
    } else {
        echo "优秀";
    }

#执行结果

php 复制代码
良好

while语句

while循环式PHP中最简单的循环类型,基本格式是while(条件){代码},只要满足条件(即为true)就会执行里面的代码,执行之后会再次判断条件,满足则会再次执行,周而复始,直至不再满足条件的时候跳出循环。

#示例

php 复制代码
<?php
    $i = 0;
    while ($i < 3) {
        echo $i . PHP_EOL;
        $i++;
    }

执行结果

php 复制代码
0
1
2

do-while语句

do-while语句跟while语句很相似,区别就在于do-while语句会先执行一次代码,后续才会判断条件,也就说无论条件是否满足,都会执行一次代码。

#示例

php 复制代码
<?php
    $i = 0;
    do {
        echo $i . PHP_EOL;
    } while ($i > 3);

执行结果

php 复制代码
0

for语句

for语句也叫for循环,它是另外一种循环结构。语法:for(expr1; expr2; expr3){statement};第一个表达式在循环前会执行一次,第二个表达式是判断条件,如果符合则执行嵌套语句(statement),之后会执行第三个表达式,然后是第二个表达式......。

#示例

php 复制代码
<?php
    for ($i = 0; $i < 4; $i++) {
        echo $i .PHP_EOL;
    }

#执行结果

php 复制代码
0
1
2
3

foreach语句

foreach是PHP提供的遍历对象、数组的简单方式。

#示例(遍历数组)

php 复制代码
<?php
    $arr = [
        'name' => 'lisi',
        'age' => 18,
        'lang' => 'chinese'
    ];
    foreach($arr as $key=>$value) {
        echo "key是:". $key . "---value是:". $value . PHP_EOL;
    }

#执行结果

php 复制代码
key是:name---value是:lisi
key是:age---value是:18
key是:lang---value是:chinese

break

结束当前循环,如for、while、do-while、foreach等。

#示例

php 复制代码
<?php
    $i = 5;
    while ($i < 20) {
        if ($i > 8) {
            break;
        }
        echo $i . PHP_EOL;
        $i++;
    }

执行结果

php 复制代码
5
6
7
8

正常它会输出到19,由于我们做了条件判断当它大于8的时候跳出循环,所以不再往后执行。

continue

continue用来跳过某次循环,不再往下执行。

#示例

要求:输出16-19的数字,跳过3的倍数的数字。

php 复制代码
<?php
    $i = 16;
    while ($i < 20) {
        if ($i % 3 === 0) {
            $i++;
            continue;
        }
        echo $i . PHP_EOL;
        $i++;
    }

执行结果

php 复制代码
16
17
19

switch语句

switch语句类似于同一个表达式的一系列if语句,也就说一个表达式的多种结果流程控制。需要注意的是,如果case后面没有break,则会往下继续匹配。

#示例

php 复制代码
<?php
    $score = 80;
    switch ($score) {
        case $score < 60 :
            echo "不及格";
            break;
        case $score < 70 :
            echo "及格";
            break;
        case $score < 85 :
            echo "良好";
            break;
        default:
            echo "优秀";
    }

执行结果

php 复制代码
良好

#示例(case后没有break)

php 复制代码
<?php
    $score = 65;
    switch ($score) {
        case $score < 60 :
            echo "不及格";
        case $score < 70 :
            echo "及格";
        case $score < 85 :
            echo "良好";
        default:
            echo "优秀";
    }

执行结果

php 复制代码
及格良好优秀

本意是输出"及格",但是由于没有紧接着break,导致继续往后匹配产生了错误的结果。

match表达式

match表达式和 switch 语句类似, 都有一个表达式主体,可以和多个可选项进行比较。之前的博客中已经有了介绍,这里不再赘述,博客地址:PHP8.0新特性_php 8.0新特性-CSDN博客

return

就像它的意思一样,返回。如果在函数中调用return语句,则不再往下执行;如果在全局范围中调用,则当前脚本文件中止运行。

#示例

php 复制代码
<?php
    echo "start";
    return;
    echo "test";
    echo "end";

执行结果

php 复制代码
start

可以看到后面两条语句并没有执行。

include

include 表达式包含并运行指定文件。如果要引用的文件不存在,则会抛出警告信息。

#示例

创建1.php

php 复制代码
<?php
    $name = "这是1.php定义的变量";

创建2.php

php 复制代码
<?php
    include "./1.php";
    echo $name;

执行2.php结果

php 复制代码
这是1.php定义的变量

通过include的引用方式,可以直接其他文件定义的数据。

include_once

include_once 跟 include 基本相同,唯一的区别是include_once会检查该文件是否已经引入,如果是则不会再执行引入操作。

require

require 跟 include 差不多,只是在失败时会抛出错误信息。

require_once

require_once 和 require 基本相同,唯一的区别是require_once会检查该文件是否已经引入,如果是则不会再执行引入操作。

goto

goto 操作符可以用来跳转到程序中的另一位置。该目标位置可以用区分大小写的目标名称加上冒号来标记,指令则是goto加上目标位置的名称。 goto有一定限制,目标位置只能位于同一个文件和作用域,也就是说无法跳出一个函数或类方法,也无法跳入到另一个函数。

#示例

php 复制代码
<?php
    for ($i = 0; $i < 8; $i++) {
        if ($i === 3) {
            goto a;
        }
        echo $i . PHP_EOL;
    }
    echo "这是标记之前的";
    a:
    echo "跳到了这里";

执行结果

php 复制代码
0
1
2
跳到了这里

完结

如果你在阅读这篇文章时有所收获,请不要忘记点赞评论加关注,你的支持是我创作的最大动力。当然,如果你在文中发现了疏漏之处,或是有着其他的见解,欢迎私信与我交流。

我是老卢,一个热爱分享、不断探索的知识旅者。

相关推荐
王磊鑫24 分钟前
C语言小项目——通讯录
c语言·开发语言
钢铁男儿27 分钟前
C# 委托和事件(事件)
开发语言·c#
Ai 编码助手1 小时前
在 Go 语言中如何高效地处理集合
开发语言·后端·golang
喜-喜1 小时前
C# HTTP/HTTPS 请求测试小工具
开发语言·http·c#
ℳ₯㎕ddzོꦿ࿐1 小时前
解决Python 在 Flask 开发模式下定时任务启动两次的问题
开发语言·python·flask
一水鉴天1 小时前
为AI聊天工具添加一个知识系统 之63 详细设计 之4:AI操作系统 之2 智能合约
开发语言·人工智能·python
apz_end2 小时前
埃氏算法C++实现: 快速输出质数( 素数 )
开发语言·c++·算法·埃氏算法
事业运财运爆棚2 小时前
Laravel 请求接口 调用2次
php·laravel
轩辕烨瑾3 小时前
C#语言的区块链
开发语言·后端·golang
ghostwritten3 小时前
Python FastAPI 实战应用指南
开发语言·python·fastapi