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
跳到了这里

完结

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

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

相关推荐
恣艺3 分钟前
Python 游戏开发与文件处理:PyGame + Turtle + openpyxl + python-docx + PyPDF2
开发语言·python·pygame
zb200641204 分钟前
Laravel5.x核心特性全解析
android·spring boot·php·laravel
高林雨露11 分钟前
kotlin 相关code
开发语言·kotlin
我还记得那天14 分钟前
函数的递归调用
c语言·开发语言·visualstudio
zhangfeng113315 分钟前
ThinkPHP5 事件系统的标准最佳实践 事件系统的完整设计逻辑tags.php tags.php(事件地图)
android·开发语言·php
xyq202418 分钟前
HTML 标签简写及全称
开发语言
tongluowan00719 分钟前
数据结构 Bitmap(位图)示例 - 用户签到系统
开发语言·数据结构·bitmap·用户签到系统
就叫_这个吧19 分钟前
Java线程池应用的四种方式+线程池底层实现原理
java·开发语言
Rust研习社21 分钟前
Rust 官方拟定 LLM 政策,防止 LLM 污染开源社区?
开发语言·后端·ai·rust·开源
muqsen23 分钟前
Java 分布式相关面试题总结
java·开发语言·分布式