ZetCode

PHP if/else/elseif 语句

最后修改于 2025 年 4 月 16 日

PHP 的 if, else, 和 elseif 语句是控制程序流程的基础。它们允许根据条件执行不同的代码块。这些结构构成了 PHP 中决策的基础。

基本定义

if 语句在条件为真时执行一个代码块。 else 语句在 if 条件为假时执行代码。

elseif 语句在之前的条件为假时检查另一个条件。多个 elseif 语句可以按顺序测试多个条件。

语法: if (condition) { code } elseif (condition) { code } else { code }。条件是求值为布尔真或假的表达式。

基本 if 语句

此示例演示了一个简单的 if 语句,用于检查数值。

basic_if.php
<?php

declare(strict_types=1);

$age = 20;

if ($age >= 18) {
    echo "You are an adult.";
}

代码检查 $age 变量是否大于或等于 18。如果为真,则打印消息。条件使用 >= 比较运算符。当条件满足时,只执行一条语句。

if-else 语句

此示例展示了如何将 if 与 else 结合使用以实现备选执行路径。

if_else.php
<?php

declare(strict_types=1);

$temperature = 25;

if ($temperature > 30) {
    echo "It's hot outside.";
} else {
    echo "It's not too hot.";
}

代码检查温度是否超过 30 度。如果不是,则执行 else 块。当条件失败时,这提供了一个默认操作。两个块中只会执行一个。

多个 elseif 语句

此示例演示了使用 elseif 检查多个条件。

elseif.php
<?php

declare(strict_types=1);

$grade = 85;

if ($grade >= 90) {
    echo "Grade: A";
} elseif ($grade >= 80) {
    echo "Grade: B";
} elseif ($grade >= 70) {
    echo "Grade: C";
} else {
    echo "Grade: F";
}

代码根据多个阈值检查等级。它在第一个为真的条件处停止。 else 提供了低于 70 的等级的默认值。这种模式在评分系统中很常见。

嵌套的 if 语句

此示例演示了如何嵌套 if 语句以处理复杂的条件。

nested_if.php
<?php

declare(strict_types=1);

$age = 25;
$hasLicense = true;

if ($age >= 18) {
    if ($hasLicense) {
        echo "You can drive.";
    } else {
        echo "You need a license.";
    }
} else {
    echo "You're too young to drive.";
}

外层 if 检查年龄,而内层 if 检查许可证状态。这创建了一个分层决策结构。每个条件都必须为真,才能执行最内层的块。

条件中的逻辑运算符

此示例演示了在条件中使用逻辑运算符 (AND, OR)。

logical_operators.php
<?php

declare(strict_types=1);

$isMember = true;
$orderTotal = 120;

if ($isMember && $orderTotal > 100) {
    echo "You qualify for free shipping!";
} elseif ($isMember || $orderTotal > 150) {
    echo "You get 10% discount.";
} else {
    echo "No special offers available.";
}

代码使用 && (AND) 和 || (OR) 检查条件的组合。第一个条件要求两者都为真。第二个条件只需要其中一个为真。逻辑运算符允许复杂的条件组合。

三元运算符替代方案

此示例显示了三元运算符作为简洁的 if-else 替代方案。

ternary.php
<?php

declare(strict_types=1);

$isLoggedIn = true;
$message = $isLoggedIn ? "Welcome back!" : "Please log in.";

echo $message;

三元运算符在 ? 之前评估条件。如果为真,则返回第一个表达式,否则返回第二个。这对于简单的决策很有用。它比完整的 if-else 块更紧凑。

检查数组元素

此示例演示了将 if 与数组元素检查一起使用。

array_check.php
<?php

declare(strict_types=1);

$user = [
    'name' => 'John',
    'age' => 25,
    'active' => true
];

if (!empty($user['name']) && $user['active']) {
    echo "Welcome, {$user['name']}!";
} elseif (empty($user['name'])) {
    echo "Please set your name.";
} else {
    echo "Account not active.";
}

代码在条件中检查多个数组元素。它首先验证名称是否存在且帐户处于活动状态。empty 函数检查非空值。数组条件的工作方式与变量条件类似。

最佳实践

来源

PHP if/else 文档

本教程涵盖了 PHP 条件语句,并提供了实用示例,展示了 if、else 和 elseif 在各种情况下的用法。

作者

我的名字是 Jan Bodnar,我是一位充满激情的程序员,拥有丰富的编程经验。 自 2007 年以来,我一直在撰写编程文章。 迄今为止,我撰写了 1,400 多篇文章和 8 本电子书。 我拥有超过十年的编程教学经验。

列出 所有 PHP 教程