PHP 基础教程
PHP 高级教程
PHP & MySQL DATABASE
PHP 示例
PHP 参考手册

PHP If…Else 语句

在本教程中,您将学习如何在 PHP 中使用 if...else...elseif 语句编写决策代码。

PHP 条件语句

与大多数编程语言一样,PHP 还允许您编写代码,在运行时根据逻辑或比较测试条件的结果执行不同的操作。 这意味着,您可以以计算结果为 truefalse 的表达式的形式创建测试条件,并根据这些结果执行某些操作。

PHP 中有几个语句可以用来做决定:

  • if 语句
  • if...else 语句
  • if...elseif....else 语句
  • switch...case 语句

我们将在接下来的部分中探讨这些陈述。

if 语句

if 语句仅在指定条件评估为真时才用于执行代码块。 这是最简单的 PHP 条件语句,可以这样写:

if(condition){
    // 要执行的代码
}

以下示例将输出"周末愉快!" 如果当天是星期五:

<?php
$d = date("D");
if($d == "Fri"){
    echo "周末愉快!";
}
?>

if...else 语句

您可以通过将 else 语句添加到 if 语句来提供替代选择来增强决策过程。 if...else 语句允许您在指定条件的计算结果为真时执行一个代码块,如果它的计算结果为假,则执行另一个代码块。 可以这样写:

if(condition){
    // 条件为真时执行的代码
} else{
    // 条件为假时执行的代码
}

下面的例子如果当前日期是星期五将输出 "Have a nice weekend!",否则将输出 "Have a nice day!"

<?php
$d = date("D");
if($d == "Fri"){
    echo "Have a nice weekend!";
} else{
    echo "Have a nice day!";
}
?>

if...elseif...else 语句

if...elseif...else 是一个特殊的语句,用于组合多个 if...else 语句。

if(condition1){
    // 条件 1 为真时执行的代码
} elseif(condition2){
    // 条件 1 为假且条件 2 为真时执行的代码
} else{
    // 如果条件 1 和条件 2 都为假,则要执行的代码
}

下面的例子如果当前日期是星期五将输出 "Have a nice weekend!",如果当前日期是星期日则输出 "Have a nice Sunday!",否则将输出 "Have a nice day!"

<?php
$d = date("D");
if($d == "Fri"){
    echo "Have a nice weekend!";
} elseif($d == "Sun"){
    echo "Have a nice Sunday!";
} else{
    echo "Have a nice day!";
}
?>

您将在下一章中了解 PHP switch-case 语句。


三元运算符

三元运算符提供了一种编写 if...else 语句的简写方式。 三元运算符由问号 (?) 符号表示,它需要三个操作数:要检查的条件、true, 的结果和 false 的结果。

要了解此运算符的工作原理,请考虑以下示例:

<?php
if($age < 18){
    echo 'Child'; // 如果年龄小于 18 岁,则显示儿童
} else{
    echo 'Adult'; // 如果年龄大于或等于 18,则显示成人
}
?>

使用三元运算符,可以以更紧凑的方式编写相同的代码:

<?php echo ($age < 18) ? 'Child' : 'Adult'; ?>

如果条件评估为真(即如果 $age 小于 18),则上例中的三元运算符选择冒号左侧的值(即 'Child'),并选择冒号右侧的值(即 'Adult')如果条件评估为假。

提示: 使用三元运算符编写的代码可能难以阅读。 但是,它提供了一种编写紧凑 if-else 语句的好方法。


Null 合并运算符 PHP 7

PHP 7 引入了一个新的 null 合并运算符 (??),您可以将其用作一种速记,您需要将三元运算符与 isset() 函数结合使用。

为了更好地理解这一点,请考虑以下代码行。 它获取 $_GET['name'] 的值,如果它不存在或 NULL,则返回"anonymous"。

<?php
$name = isset($_GET['name']) ? $_GET['name'] : 'anonymous';
?>

使用空合并运算符,相同的代码可以写成:

<?php
$name = $_GET['name'] ?? 'anonymous';
?>

如您所见,后面的语法更紧凑,更容易编写。

Advertisements