用条件声明变量


Declare variable with condition

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+中寻找

对于这种特殊情况,PHP提供了?:简写,它只计算一次条件:

$baz = $foo ?: $bar;

但除此之外,它在功能上与$foo ? $foo : $bar相当。

编辑:$foo ?? $bar只适用于$foo可能是null的情况。该操作符仅在PHP 7之后可用。然而,?:从PHP 5.3开始可用。三元制将检查false(松散)。