最短的if / else使用三元运算符
我有这段代码:
<?=!empty($options["placeholder"]) ? $options["placeholder"]:'search...'?>
我的印象是我可以做的:
<?=!empty($options["placeholder"]) ?:'search...'?>
但是当$options["placeholder"]
不为空时,它返回1,因为它是一个三元运算符。
我必须总是发出2次变量吗?
如果你可以确定$options['placeholder']
将被设置 - 如果没有,你可以用@
作为前缀来抑制警告 - 你可以删除empty
调用:
<?= $options["placeholder"] ?: 'search...' ?>
Elvis操作符?:
计算结果为左侧如果(它是truthy true
时强制转换为boolean
值,如1
或一个非空字符串'foo'
)或右手侧即使不是。
是。 然而,有很多要求改变这一点的请求: