PHP if ... else

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

PHP 条件语句

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

PHP 中有几个语句可用于做出决策:

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

我们将在接下来的部分中探讨每一个条件判断语句。

if 语句

if 语句用来执行代码块仅当指定的条件评估为真。这是最简单的 PHP 条件语句,可以写成:

if (condition){ // Code to be executed } 

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

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

if...else 声明

你可以通过在 if 语句中添加 else 语句来提供替代选择,从而增强决策制定流程。该 IF … ELSE 语句可以执行的代码,一个块,如果指定的条件计算为真和另一个代码块如果计算结果为假。它可以这样编写:

if (condition){ // Code to be executed if condition is true } else { // Code to be executed if condition is false } 

以下示例如果当天是星期五将输出 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){ // Code to be executed if condition1 is true } elseif (condition2){ // Code to be executed if the condition1 is false and condition2 is true } else { // Code to be executed if both condition1 and condition2 are false } 

以下示例如果当天是星期五将输出 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 语句的简便方法。三元运算符由问号(?)符号表示,它需要三个操作数:要检查的条件,结果 ture 和结果 false

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

<?php
if($age < 18){
    echo 'Child'; // Display Child if age is less than 18
} else{
    echo 'Adult'; // Display Adult if age is greater than or equal to 18
}
?>

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

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

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

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

PHP 7 中的空合并运算符

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

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

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

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

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

正如你所看到的,后面的语法更紧凑,更易于编写。