微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在PHP中使用三元运算符(?:)作为“if / else”的简写?

根据示例from this page,我在下面有工作和非工作代码示例.

使用if语句的工作代码

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

使用三元运算符的非工作代码

$test = (empty($address['street2'])) ? 'Yes <br />' : 'No <br />';

// Also tested this
(empty($address['street2'])) ? 'Yes <br />' : 'No <br />';

UPDATE
在Brian的小费之后,我发现回应$test输出了预期的结果.以下作品就像一个魅力!

echo (empty($storeData['street2'])) ? 'Yes <br />' : 'No <br />';

解决方法:

(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 empty($address['street2']) ? "Street2 is empty!" : $address['street2'];

这将显示“街道空无一人!”如果它是空的,否则它将显示street2地址.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐