声明变量的条件
问题描述:
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
(松散地)。
超级!谢谢。它等价于PHP7''''吗? – 3zzy
@ 3zzy看到我的编辑。 '$ foo = false; $ baz = $ foo ?? “ALT”; $ qux = $ foo?:“alt”;'是不同的。但对于真值,它是一样的。 – bwoebi
啊哈,很高兴知道。谢谢!虽然我在PHP7上,但我希望代码向后兼容。 – 3zzy