声明有条件的变量

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 提供了 ?: shorthand,它只计算一次条件:

$baz = $foo ?: $bar;

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

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