最短的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' )或右手侧即使不是。
是。 然而,有很多要求改变这一点的请求:
