PHP 零基础入门笔记(6):PHP 流程控制
  TEZNKK3IfmPf 2023年11月15日 17 0

PHP 流程控制

代码执行的方向

控制分类

  • 顺序结构 代码从上往下,顺序执行

  • 分支结构 根据条件执行某一段代码

  • 循环结构 指定代码块重复执行

顺序结构

最基本的结构,所有代码默认都是从上往下依次执行

分支结构

1、if 分支

基本语法

// 1、最简if
if(条件表达式){
    // 满足条件所要执行的代码
}

// 2、基础if
if(条件){
    // 满足
}
else{
    // 不满足
}

// 3、复杂if
if(条件1){
    // 满足条件1
}
else if(条件2){
    // 满足条件2
}
else{
    // 不满足
}

注意: 嵌套层数不宜过多

示例

<?php

$a = 1;

if ($a == 1) {
    echo '星期一';
} else if ($a == 2) {
    echo '星期二';
} else {
    echo '未知';
}

// 星期一

2、switch 分支

使用场景:同一个条件有多个值

基本语法

switch(条件表达式){
    case 值1: // 判断表达式的结果与值相等
        要执行的代码段1;
        break;
    case 值2:
        要执行的代码段2;
        break;
    ...
    default:
        默认自行的代码;
}

switch 匹配成功后,会执行之后的代码,需要使用 break 跳出

<?php

$a = 1;

switch ($a) {
    case 1:
        echo '星期一';
        break;
    case 2:
        echo '星期二';
        break;
    default:
        echo '未知';
}

// 星期一

if 和 switch 的选择

  • if 能做所有的的分支结构

  • switch 处理的条件多,用于固定的条件

循环结构

  • for 循环

  • while 循环

  • do-while 循环

  • foreach 循环,专门针对数组

1、for 循环

基本语法

for(初始化条件; 边界表达式; 条件变化){
   // 循环体
}

示例

<?php

// 循环输出1-10
for ($i = 1; $i <= 10; $i++) {
    echo $i . ' ';
}

// 1 2 3 4 5 6 7 8 9 10

// 初始化语句中,定义多个变量
for ($i = 1, $end = 10; $i <= $end; $i++) {
    echo $i . ' ';
}

For循环特殊使用:死循环,避免出现

for(;;){
    // 无限循环 
}

2、while循环

基本语法

条件初始化;

while(条件表达式){
    // 循环体
    // 循环条件的变化
}

示例

<?php

$i = 1;

while( $i <= 10 ){
    echo $i . ' ';
    $i++;
}

// 1 2 3 4 5 6 7 8 9 10

For和while的选择

  • For循环:基于已知条件,数值有规律变化

  • while循环:灵活条件判定

3、do-while

基本语法

do{
    // 循环体
} while(判断条件);

示例

<?php

$i = 1;

do{
    echo $i . ' ';
    $i++;
}
while( $i <= 10 );

// 1 2 3 4 5 6 7 8 9 10

循环控制

在循环体内部对循环本身进行控制

  • 中断控制 continue:重新开始循环,循环体重还有其他内容,也执行

  • 终止控制 break:循环直接结束

<?php

for ($i=0; $i < 10; $i++) { 
    if($i % 2 == 0){
        continue;
    }

    if($i == 8){
        break;
    }

    echo $i . ' ';
}

// 1 3 5 7 9

流程控制替代语法

分支和循环结构的替代语法

HTML和PHP进行混搭

<table>
    <!-- 输出 99乘法表 -->
    <?php for ($i = 1; $i < 10; $i++) { ?>
        <tr>
            <?php for ($j = 1; $j <= $i; $j++) { ?>
                <td> <?php echo $i . ' * ' . $j . ' = ' . $i * $j; ?></td>
            <?php } ?>
        </tr>
    <?php } ?>
</table>
1 * 1 = 1
2 * 1 = 2   2 * 2 = 4
3 * 1 = 3   3 * 2 = 6   3 * 3 = 9
4 * 1 = 4   4 * 2 = 8   4 * 3 = 12  4 * 4 = 16
5 * 1 = 5   5 * 2 = 10  5 * 3 = 15  5 * 4 = 20  5 * 5 = 25
6 * 1 = 6   6 * 2 = 12  6 * 3 = 18  6 * 4 = 24  6 * 5 = 30  6 * 6 = 36
7 * 1 = 7   7 * 2 = 14  7 * 3 = 21  7 * 4 = 28  7 * 5 = 35  7 * 6 = 42  7 * 7 = 49
8 * 1 = 8   8 * 2 = 16  8 * 3 = 24  8 * 4 = 32  8 * 5 = 40  8 * 6 = 48  8 * 7 = 56  8 * 8 = 64
9 * 1 = 9   9 * 2 = 18  9 * 3 = 27  9 * 4 = 36  9 * 5 = 45  9 * 6 = 54  9 * 7 = 63  9 * 8 = 72  9 * 9 = 81

另一种书写for的方式

<table>
    <!-- 输出 99乘法表 -->
    <?php for ($i = 1; $i < 10; $i++) : ?>
        <tr>
            <?php for ($j = 1; $j <= $i; $j++) : ?>
                <td> <?php echo $i . ' * ' . $j . ' = ' . $i * $j; ?></td>
            <?php endfor ?>
        </tr>
    <?php endfor ?>
</table>

PHP在HTML中应该只做数据输出

if() {} => if(): endif;
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月15日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年05月17日   26   0   0 算法php
  TEZNKK3IfmPf   2024年03月29日   45   0   0 php
  TEZNKK3IfmPf   2024年04月19日   35   0   0 php
  TEZNKK3IfmPf   2024年04月19日   65   0   0 shellphp
  TEZNKK3IfmPf   2024年04月19日   42   0   0 php
  TEZNKK3IfmPf   2024年05月17日   49   0   0 冒泡排序php
  TEZNKK3IfmPf   2024年04月19日   37   0   0 xmlphp
  TEZNKK3IfmPf   2024年05月17日   40   0   0 数组php
  TEZNKK3IfmPf   2024年03月29日   48   0   0 数据库mysqlphp
  TEZNKK3IfmPf   2024年05月17日   49   0   0 mysqlphp
  TEZNKK3IfmPf   2024年04月19日   49   0   0 php
  TEZNKK3IfmPf   2024年05月17日   32   0   0 字符串php
TEZNKK3IfmPf