首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何用一个三元运算符(?:)替换"if“语句?

如何用一个三元运算符(?:)替换"if“语句?
EN

Stack Overflow用户
提问于 2009-10-02 05:13:42
回答 12查看 391.4K关注 0票数 145

基于示例from this page,我想将下面的if语句转换为一个三元运算符。

使用if语句的工作代码:

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

我不确定应该如何使用三元运算符编写此代码,以便仅当数组中存在street2且不是空字符串时,echo才能工作。

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2009-10-01 21:30:55

这个

(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 */
}

在您的示例中,在$address不为空的情况下执行echo语句。对于条件运算符,您不能以同样的方式执行此操作。但是,您可以对条件运算符的结果执行echo操作:

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

这将显示“街道是空的!”如果为空,则显示street2地址。

票数 279
EN

Stack Overflow用户

发布于 2017-07-06 18:42:49

PHP 7+

从PHP7开始,只需使用如下所示的Null coalescing operator即可执行此任务:

echo $address['street2'] ?? 'Empty';
票数 46
EN

Stack Overflow用户

发布于 2018-10-16 22:32:23

你要找的是三元运算符,也就是Elvis运算符(google it :P)。

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

它返回变量的值,如果变量为空,则返回默认值。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1506527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档