在 echo 中使用三元运算符?

为什么我可以这样使用 echo:

<?php echo false ? 'yes' : 'no'; ?> //no

但不能这样使用

<?php echo false ?? 'yes'; ?> //nothing output


慕沐林林
浏览 102回答 2
2回答

慕桂英546537

这 ??PHP 中的运算符是空合并运算符:expr1&nbsp;??&nbsp;expr2; expr1&nbsp;is&nbsp;returned&nbsp;when&nbsp;expr1&nbsp;exists&nbsp;and&nbsp;is&nbsp;NOT&nbsp;null;&nbsp;otherwise&nbsp;it&nbsp;returns&nbsp;expr2.由于在本例中 expr1 为 false 但已设置,因此该表达式返回布尔值 false。比较:echo&nbsp;false&nbsp;??&nbsp;'It&nbsp;is&nbsp;FALSE';&nbsp;//&nbsp;won't&nbsp;be&nbsp;displayed echo&nbsp;null&nbsp;??&nbsp;'it&nbsp;is&nbsp;NULL';&nbsp;//&nbsp;It&nbsp;will&nbsp;work当传递布尔值 false 时,Echo 不会输出。

Cats萌萌

如前所述,您在这里使用空合并运算符它正在检查 false 是否为空只是想添加:常规与简写三元运算echo&nbsp;false&nbsp;?&nbsp;'yes'&nbsp;:&nbsp;'no';是相同的echo&nbsp;false&nbsp;?:&nbsp;'no';所以,echo&nbsp;true&nbsp;?:&nbsp;'no';将输出 1,因为 ?: 本质上跳过第一个表达式(condition)&nbsp;?&nbsp;expression1&nbsp;:&nbsp;expression2
打开App,查看更多内容
随时随地看视频慕课网APP