用条件声明变量

时间:2016-09-15 01:49:07

标签: javascript php variables ternary

var foo, bar;

foo = 'hello'; // first
bar = 'world'; // otherwise

var baz = foo || bar;

console.log(baz);

想知道PHP的做法是什么?我已经了解ternary运算符:

$foo = $bar = '';

$foo = 'hello'; // first
$bar = 'world'; // otherwise

$baz = $foo ? $foo : $bar;

echo $baz;

..但是我想在这里进行优化,因为在我的情况下$foo是MySQL查询,我相信它在检查时执行了两次(?)然后分配。无论哪种方式,我想知道是否有更优雅的DRY方法。

修改

在PHP7中,你可以这样做:

$baz = $foo ?? $bar;

...但在PHP 5 +中找东西

1 个答案:

答案 0 :(得分:3)

对于这种特定情况,PHP提供了?:简写,它只评估一次条件:

$baz = $foo ?: $bar;

但除此之外,它在功能上等同于$foo ? $foo : $bar

编辑:$foo ?? $bar仅适用于$foo可能为null的情况。该运算符仅在PHP 7之后可用。?:但是自PHP 5.3起可用。三元将检查false(松散地)。