如何将“if”语句替换为三元运算符 ( ? : )?

2022-08-30 06:45:55

根据此页面中的示例,我想将以下语句转换为三元运算符。if

使用语句的工作代码:if

if (!empty($address['street2'])) echo $address['street2'].'<br />';

我不确定这应该如何使用三元运算符编写,以便仅当数组中存在并且不是空字符串时才起作用。echostreet2


答案 1

(condition) ? /* value to return if condition is true */ 
            : /* value to return if condition is false */ ;

语法不是“速记 if”运算符(称为条件运算符),因为您无法以与执行代码相同的方式执行代码:?

if (condition) {
    /* condition is true, do something like echo */
}
else {
    /* condition is false, do something else */
}

在您的示例中,您正在执行不为空的语句。不能以相同的方式使用条件运算符执行此操作。但是,您可以做的是条件运算符的结果:echo$addressecho

echo empty($address['street2']) ? "Street2 is empty!" : $address['street2'];

如果它是空的,这将显示“Street is empty!”,否则它将显示street2地址。


答案 2

7 菲律宾比索

从 PHP 7 开始,只需使用 Null 合并运算符即可执行此任务,如下所示:

echo $address['street2'] ?? 'Empty';

推荐