我有这段代码:
<?=!empty($options["placeholder"]) ? $options["placeholder"]:'search...'?>
我的印象是我可以做的:
<?=!empty($options["placeholder"]) ?:'search...'?>
但是当$options["placeholder"]
不为空时它会返回1,因为它是一个三元运算符。
我是否必须始终发出变量2次?
答案 0 :(得分:2)
是。然而,有许多要求改变这一点的要求:
答案 1 :(得分:-1)
如果您确定将设置$options['placeholder']
- 如果不是,您可以在其前面添加@
以取消警告 - 您可以放弃empty
来电:
<?= $options["placeholder"] ?: 'search...' ?>
Elvis operator ?:
如果 truthy (true
在强制转换为boolean
值(如1
时评估到左侧{1}}或非空字符串'foo'
)或右侧(如果不是。)