声明有条件的变量
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
(松散地)。
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
(松散地)。