使用三元运算符的最短if / else

时间:2014-04-15 02:20:16

标签: php

我有这段代码:

<?=!empty($options["placeholder"]) ? $options["placeholder"]:'search...'?>

我的印象是我可以做的:

<?=!empty($options["placeholder"]) ?:'search...'?>

但是当$options["placeholder"]不为空时它会返回1,因为它是一个三元运算符。

我是否必须始终发出变量2次?

2 个答案:

答案 0 :(得分:2)

是。然而,有许多要求改变这一点的要求:

答案 1 :(得分:-1)

如果您确定将设置$options['placeholder'] - 如果不是,您可以在其前面添加@以取消警告 - 您可以放弃empty来电:

<?= $options["placeholder"] ?: 'search...' ?>

Elvis operator ?:如果 truthy true在强制转换为boolean值(如1时评估到左侧{1}}或非空字符串'foo')或右侧(如果不是。)