Bootstrap

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
    $a = 10;
    if ($a  > 9) {
        echo "变量a比9大";
    }

执行结果 

变量a比9大

else语句

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

#示例

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

执行结果

变量a比9小

 

elseif语句

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

#示例

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

#执行结果

良好

 

while语句

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

#示例

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

执行结果

0
1
2

do-while语句

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

#示例

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

执行结果

0

for语句

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

#示例

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

#执行结果

0
1
2
3

foreach语句

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

#示例(遍历数组)

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

#执行结果

key是:name---value是:lisi
key是:age---value是:18
key是:lang---value是:chinese

break

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

#示例

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

执行结果

5
6
7
8

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

 

continue

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

#示例

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

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

执行结果

16
17
19

 

switch语句

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

#示例

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

执行结果

良好

#示例(case后没有break)

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

执行结果

及格良好优秀

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

 

match表达式

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

 

return

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

#示例

<?php
    echo "start";
    return;
    echo "test";
    echo "end";

执行结果

start

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

include

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

#示例

创建1.php

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

创建2.php

<?php
    include "./1.php";
    echo $name;

执行2.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
    for ($i = 0; $i < 8; $i++) {
        if ($i === 3) {
            goto a;
        }
        echo $i . PHP_EOL;
    }
    echo "这是标记之前的";
    a:
    echo "跳到了这里";

执行结果

0
1
2
跳到了这里

完结

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


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

;