PHP 零基础教程

PHP 条件控制

条件语句允许程序根据指定的条件是真(true)还是假(false)来做出决策。这些语句是控制 PHP 脚本执行流程的基础,它让你的程序能够“见机行事”——只有在满足特定标准时,才去运行不同的代码块。

1. if 语句

if 语句是最基础的控制结构。只有当指定的条件为 true(真)时,它才会执行其内部的代码块。如果条件为 false(假),则会完全跳过该代码块。

if 语句的语法如下:

if (条件) {
    // 如果条件为真 (true),将执行这里的代码
}

括号内的 条件 通常使用我们在模块 2 中学过的比较运算符(如 ==, !=, <, >, <=, >=)或逻辑运算符(如 &&, ||, !),最终计算得出一个布尔值 truefalse

1.1 基础 if 示例

假设这样一个场景:你需要检查用户的年龄,以确定他们是否达到了访问特定内容的法定年龄。

<?php
$userAge = 20; // 假设这个值来自用户的输入或数据库

if ($userAge >= 18) {
    echo "你符合条件,可以查看此内容。"; // 这行代码将会执行
}
echo "<br>";

$anotherUserAge = 16;

if ($anotherUserAge >= 18) {
    echo "你符合条件,可以查看此内容。"; // 这行代码将不会执行(被跳过)
}

echo "验证完成。"; // 无论条件如何,这行代码都会执行
?>

在第一个例子中,$userAge 是 20,大于或等于 18,所以条件 $userAge >= 18true。屏幕上会显示“你符合条件,可以查看此内容。”。
在第二个例子中,$anotherUserAge 是 16,不大于等于 18,所以条件为 falseif 代码块内部的消息将被直接跳过。

1.2 结合逻辑运算符的 if 语句

你可以使用逻辑运算符将多个条件组合在一起,从而创建更复杂的检查逻辑。

<?php
$isLoggedIn = true;
$userRole = "admin";

// 检查用户是否已登录,并且 (AND) 角色是 'admin'(管理员)
if ($isLoggedIn && $userRole == "admin") {
    echo "欢迎,管理员!你拥有完全访问权限。";
}
echo "<br>";

$isPaidMember = false;
$hasPremiumFeature = true;

// 检查用户是否是付费会员,或者 (OR) 是否拥有高级特权
if ($isPaidMember || $hasPremiumFeature) {
    echo "高级内容访问权限已授予。";
}
?>

在第一个 if 语句中,必须 $isLoggedIn$userRole == "admin" 两者都为 true,内部的代码块才会执行。
在第二个例子中,只要 $isPaidMember$hasPremiumFeature 其中任何一个true,代码块就会执行。

2. else 语句

else 语句提供了一个备用的代码块,专门在 if 条件计算为 false 时执行。它确保了两个代码块中必然有一个会被运行。

if...else 语句的语法如下:

if (条件) {
    // 如果条件为真 (true),将执行这里的代码
} else {
    // 如果条件为假 (false),将执行这里的代码
}

2.1 if...else 示例

延续前面的年龄验证示例,你可以为那些未达到年龄要求的用户提供一条提示消息。

<?php
$userAge = 16;

if ($userAge >= 18) {
    echo "你符合条件,可以查看此内容。";
} else {
    echo "你必须年满 18 岁才能查看此内容。"; // 这行代码将会执行
}
echo "<br>";

$currentWeather = "sunny"; // 晴天

if ($currentWeather == "rainy") { // 下雨
    echo "别忘了带伞!";
} else {
    echo "好好享受这美丽的天气吧!"; // 这行代码将会执行
}
?>

在第一个例子中,因为 $userAge 是 16,if 的条件为 false,所以转而执行 else 代码块。
在第二个例子中,$currentWeather 是 "sunny"(晴天),所以 if 条件不成立(为 false),程序执行了 else 代码块。

3. elseif 语句 (或 else if)

elseif(或者写成 else if,两者在 PHP 中基本等效)语句允许你按顺序测试多个条件。

如果第一个 if 条件为假,PHP 会接着检查后面的 elseif 条件。如果它也为假,则继续检查下一个 elseif,依此类推。如果所有的 ifelseif 条件全都不为真,那么最后那个可选的 else 代码块(如果有的话)就会被执行。

执行规则: elseif 语句只有在它前面的 ifelseif 条件都为 false 时才会被执行。一旦有任何一个条件被评估为 true,它对应的代码块就会被执行,并且剩下的所有 elseifelse 块都会被直接跳过

if...elseif...else 的完整语法如下:

if (condition1) {
    // 如果 condition1 为真 (true),执行这里的代码
} elseif (condition2) {
    // 如果 condition1 为假,且 condition2 为真,执行这里的代码
} elseif (condition3) {
    // 如果前面的条件都为假,且 condition3 为真,执行这里的代码
} else {
    // 如果上述所有条件都为假 (false),执行这里的代码
}