Skip to content

第 6 章:流程控制语句

6.1 if /else if /else

基本语法

php
<?php
if (条件1) {
    // 条件1为真时执行的代码
} elseif (条件2) {
    // 条件1为假,条件2为真时执行的代码
} else {
    // 所有条件都为假时执行的代码
}
?>

示例代码

php
<?php
$score = 85;

if ($score >= 90) {
    echo "优秀";
} elseif ($score >= 80) {
    echo "良好";
} elseif ($score >= 60) {
    echo "及格";
} else {
    echo "不及格";
}
?>

简写形式

php
<?php
// 三元运算符
$message = $age >= 18 ? "成年人" : "未成年人";

// 简写if语句(适合单行代码)
if ($score >= 60) echo "及格";
?>

6.2 switch case

基本语法

php
<?php
switch (表达式) {
    case 值1:
        // 表达式等于值1时执行的代码
        break;
    case 值2:
        // 表达式等于值2时执行的代码
        break;
    default:
        // 表达式不等于任何case值时执行的代码
}
?>

示例代码

php
<?php
$day = date('w'); // 获取今天是星期几(0-6,0表示星期日)

switch ($day) {
    case 0:
        echo "今天是星期日";
        break;
    case 1:
        echo "今天是星期一";
        break;
    case 2:
        echo "今天是星期二";
        break;
    case 3:
        echo "今天是星期三";
        break;
    case 4:
        echo "今天是星期四";
        break;
    case 5:
        echo "今天是星期五";
        break;
    case 6:
        echo "今天是星期六";
        break;
    default:
        echo "无效的星期";
}
?>

6.3 while 循环

基本语法

php
<?php
while (条件) {
    // 条件为真时重复执行的代码
}
?>

示例代码

php
<?php
$i = 1;
while ($i <= 10) {
    echo "$i <br>";
    $i++;
}
?>

6.4 do while 循环

基本语法

php
<?php
do {
    // 先执行一次代码
} while (条件); // 然后检查条件,条件为真时继续执行
?>

示例代码

php
<?php
$i = 1;
do {
    echo "$i <br>";
    $i++;
} while ($i <= 10);
?>

while 与 do while 的区别

  • while 循环:先检查条件,再执行代码
  • do while 循环:先执行代码,再检查条件(至少执行一次)

6.5 for 循环

基本语法

php
<?php
for (初始化; 条件; 增量) {
    // 条件为真时执行的代码
}
?>

示例代码

php
<?php
for ($i = 1; $i <= 10; $i++) {
    echo "$i <br>";
}
?>

嵌套 for 循环

php
<?php
// 打印乘法表
for ($i = 1; $i <= 9; $i++) {
    for ($j = 1; $j <= $i; $j++) {
        echo "$j × $i = " . ($j * $i) . "\t";
    }
    echo "<br>";
}
?>

6.6 foreach 循环(重点)

遍历索引数组

php
<?php
$fruits = array("苹果", "香蕉", "橙子", "葡萄");

foreach ($fruits as $fruit) {
    echo "水果:$fruit <br>";
}

// 带键名的遍历
foreach ($fruits as $key => $fruit) {
    echo "索引 $key:$fruit <br>";
}
?>

遍历关联数组

php
<?php
$person = array(
    "name" => "张三",
    "age" => 25,
    "email" => "zhangsan@example.com"
);

foreach ($person as $key => $value) {
    echo "$key:$value <br>";
}
?>

6.7 break /continue

break 语句

用于跳出循环或 switch 语句

php
<?php
// 跳出循环
for ($i = 1; $i <= 10; $i++) {
    if ($i == 5) {
        break; // 当i=5时跳出循环
    }
    echo "$i <br>";
}

// 跳出switch
switch ($num) {
    case 1:
        echo "数字1";
        break;
    case 2:
        echo "数字2";
        break;
}
?>

continue 语句

用于跳过当前循环的剩余部分,继续下一次循环

php
<?php
// 跳过偶数
for ($i = 1; $i <= 10; $i++) {
    if ($i % 2 == 0) {
        continue; // 跳过偶数
    }
    echo "$i <br>";
}
?>

6.8 实操:循环打印、数字判断

创建 control-structures-demo.php 文件

php
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>流程控制语句示例</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 20px;
        }
        .section {
            margin: 20px 0;
            padding: 15px;
            border: 1px solid #ccc;
            border-radius: 5px;
        }
        h2 {
            color: #333;
        }
        pre {
            background-color: #f5f5f5;
            padding: 10px;
            border-radius: 3px;
        }
    </style>
</head>
<body>
    <h1>流程控制语句示例</h1>
    
    <!-- 数字判断 -->
    <div class="section">
        <h2>数字判断</h2>
        <?php
        $num = 42;
        echo "数字:$num<br>";
        
        if ($num > 0) {
            echo "这是一个正数<br>";
        } elseif ($num < 0) {
            echo "这是一个负数<br>";
        } else {
            echo "这是零<br>";
        }
        
        if ($num % 2 == 0) {
            echo "这是一个偶数<br>";
        } else {
            echo "这是一个奇数<br>";
        }
        
        if ($num % 3 == 0 && $num % 5 == 0) {
            echo "这个数能同时被3和5整除<br>";
        } elseif ($num % 3 == 0) {
            echo "这个数能被3整除<br>";
        } elseif ($num % 5 == 0) {
            echo "这个数能被5整除<br>";
        } else {
            echo "这个数不能被3或5整除<br>";
        }
        ?>
    </div>
    
    <!-- 循环打印 -->
    <div class="section">
        <h2>循环打印</h2>
        
        <h3>while 循环</h3>
        <pre>
<?php
$i = 1;
while ($i <= 5) {
    echo "$i <br>";
    $i++;
}
?>
        </pre>
        
        <h3>for 循环</h3>
        <pre>
<?php
for ($i = 1; $i <= 5; $i++) {
    echo "$i <br>";
}
?>
        </pre>
        
        <h3>foreach 循环</h3>
        <pre>
<?php
$fruits = array("苹果", "香蕉", "橙子", "葡萄");
foreach ($fruits as $key => $fruit) {
    echo "索引 $key:$fruit <br>";
}
?>
        </pre>
    </div>
    
    <!-- 乘法表 -->
    <div class="section">
        <h2>乘法表</h2>
        <table border="1" cellpadding="5">
            <?php
            for ($i = 1; $i <= 9; $i++) {
                echo "<tr>";
                for ($j = 1; $j <= $i; $j++) {
                    echo "<td>$j × $i = " . ($j * $i) . "</td>";
                }
                echo "</tr>";
            }
            ?>
        </table>
    </div>
    
    <!-- 闰年判断 -->
    <div class="section">
        <h2>闰年判断</h2>
        <?php
        $year = 2024;
        echo "年份:$year<br>";
        
        if (($year % 4 == 0 && $year % 100 != 0) || $year % 400 == 0) {
            echo "$year 是闰年";
        } else {
            echo "$year 不是闰年";
        }
        ?>
    </div>
</body>
</html>

访问页面

  1. 将文件保存到网站根目录
  2. 打开浏览器,访问 http://localhost/control-structures-demo.php
  3. 查看页面效果

小结

通过本章的学习,你掌握了 PHP 的流程控制语句,包括条件判断(if/elseif/else、switch case)和循环语句(while、do while、for、foreach)。你还学习了 break 和 continue 语句的使用。这些流程控制语句是 PHP 编程的核心,它们使程序能够根据不同的条件执行不同的代码,或者重复执行一段代码。在后续的学习中,你将经常使用这些语句来实现各种功能。

© 2026 编程马·菜鸟教程 版权所有