PHP if…else 语句

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

PHP条件语句

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

PHP中有一些语句可用于制定决策:

  • if 语句

  • if ... else 语句

  • if...elseif..else 语句

  • switch...case 语句

我们将在接下来的部分中探讨每个语句。

if 语句

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

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

下面的示例将输出“周末愉快!” 如果今天是星期五:

<?php
$d = date("D");
if($d == "Fri"){
    echo "周末愉快!";
}
?>
测试看看‹/›

if...else 语句

您可以通过在if语句中添加else语句来提供代替选择,从而增强决策过程。 如果指定条件的条件为True,则if ... else语句使您可以执行一个代码块,如果条件为False,则可以执行另一块代码。 可以这样写:

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

下面的示例将输出“周末愉快!” 如果当前日期是星期五,则将输出“祝您愉快!”

<?php
$d = date("D");
if($d == "Fri"){
    echo "周末愉快!";
} else{
    echo "祝您愉快!";
}
?>
测试看看‹/›

if...elseif...else 语句

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

if(condition1){
    //如果condition1为true时将执行的代码
} elseif(condition2){
    //如果condition1为false且condition2为true时将执行的代码
} else {
    //如果condition1和condition2都将执行的代码是错误的
}

下面的示例将输出“周末愉快!” 如果当前日期是星期五,并且“祝您星期日愉快!” 如果当前日期是星期天,否则将输出“祝您愉快!”

<?php
$d = date("D");
if($d == "Fri"){
    echo "周末愉快!";
} elseif($d == "Sun"){
    echo "祝您星期日愉快!";
} else{
    echo "祝您愉快!";
}
?>
测试看看‹/›

下一章中,您将了解有关PHP switch-case语句的信息。

三元运算符

三元操作符提供了一种写 if... else 语句的简便方法。三元运算符用问号(?)表示它有三个操作数: 要检查的条件、条件为真的结果和条件为假的结果。

要了解此运算符的工作方式,请看以下示例:

<?php
$age = 15;
if($age < 18){
    echo '儿童'; //如果年龄小于18岁,则显示儿童
} else{
    echo '成人'; //如果年龄大于或等于18岁,则显示成人
}
?>
测试看看‹/›

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

<?php 
    $age = 15;
    echo ($age < 18) ? '儿童' : '成人'; 
?>
测试看看‹/›

上例中的三元运算符如果条件的计算结果为true(即$age小于18),则选择冒号左侧的值(即“儿童”),如果条件的计算结果为false,则选择冒号右侧的值(即“成人”)。

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

空合并运算符PHP 7

PHP 7引入了一个新的空合并运算符(??),您可以将其用作简写形式,在其中需要结合使用三元运算符和isset()函数。

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

<?php
//使用三元运算符(?:)
$name = isset($_GET['name']) ? $_GET['name'] : 'anonymous';
echo $name;
?>
测试看看‹/›

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

<?php
//使用空合并运算符(??)
$name = $_GET['name'] ?? 'anonymous';
echo $name;
?>
测试看看‹/›

正如您看到的,后面的语法更加紧凑和易于编写。