PHP 中的问号符号

Subodh Poudel 2023年9月19日
  1. PHP中三元运算符的介绍
  2. 使用PHP中的三元运算符评估TrueFalse表达式
PHP 中的问号符号

在PHP中,问号 ? 运算符被称为三元运算符或条件三元运算符。本文将深入介绍PHP中的三元运算符。

PHP中三元运算符的介绍

三元条件运算符 ? 也被称为条件表达式或三元运算符。它具有以下语法:

$variable = (condition) ? value_if_true : value_if_false;

以下是各组成部分的解释:

  • condition:一个将被评估的布尔表达式。

  • value_if_true:如果 condition 为真时,将赋给 $variable 的值。

  • value_if_false:如果 condition 为假时,将赋给 $variable 的值。

三元运算符评估 condition;如果为真,则将 value_if_true 赋给 $variable;否则,将 value_if_false 赋给 $variable

示例代码:

<?php
$num = 10;
$result = ($num % 2 == 0) ? "Even" : "Odd";
echo "The number $num is $result.";
?>

输出:

The number 10 is Even.

我们可以使用三元运算符替代 if-else 结构,以缩短代码的长度和提高可读性。我们可以使用它编写更简单的条件表达式。

示例代码:

<?php
$count = (true) ? 1 : 0;

if (true)
{
    $count = 1;
}
else
{
    $count = 0;
}
echo $count;
?>

输出:

1

然而,当我们链式或嵌套使用三元运算符时,阅读代码可能会较为困难。三元运算符的另一个缺点是,由于我们不能在子表达式中设置断点,所以很难调试代码。

使用PHP中的三元运算符评估TrueFalse表达式

我们将研究三元运算符的使用。下面的示例将对true表达式进行评估,并相应地执行代码块。

canVote() 函数将确定一个人是否有资格投票。首先,变量 $age 被评估为大于或等于 18

接下来,我们使用值 21 作为参数调用了 canVote() 函数,这是合法投票的年龄。在这里,表达式被评估为true,并执行了第二个表达式。

示例代码:

<?php
function canVote($age){
    echo $age>=18 ?"you can vote": "you cannot vote";
}
canVote(21);
?>

canVote() 函数将确定一个人是否有资格投票。首先,变量 $age 被评估为大于或等于 18

接下来,我们使用值 21 作为参数调用了 canVote() 函数,这是合法投票的年龄。在这里,表达式被评估为true,并执行了第二个表达式。

输出:

you can vote

在下一个示例中,如果我们提供小于 18 的值,比较表达式将被评估为false。因此,将显示第三个表达式 you cannot vote

示例代码:

<?php
function canVote($age){
    echo $age>=18 ?"you can vote": "you cannot vote";
}
canVote(17);
?>

输出:

you cannot vote

在其他情况下,要被表达的评估会返回false值。例如,如果表达式返回 nullNan0 或一个空值,则表达式将返回false值。

以下示例展示了 falsy值的条件。当这些值被评估时,三元运算符将执行第三个表达式。

示例代码:

<?php
function Car($name){
    echo $name?$name:"no name";
    echo "<br>";
}
Car("Tesla");
Car(null);
Car("");
Car(0);
?>

输出:

Tesla
no name
no name
no name
作者: Subodh Poudel
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

相关文章 - PHP Operator