我有这样的代码:
$foo = false;
$ar = ["bar", "baz"];
if ($foo === true) {
$ar[] = "corge";
}
var_dump($ar);
所以如果 $foo 是
true
,$ar
应该是这样的:["bar", "baz", "corge"]
,否则它应该是这样的:["bar", "baz"]
.
php 中是否有速记运算符可以让我消除
if
?
像三元、null coalesce 和 Elvis 这样的解决方案都会在
$foo
为假时创建第三个元素。
要有另一个选择,您可以使用三元运算符。
$foo ? $ar[] = "corge" : null;
如果
$foo
是true
,corge
将被添加,否则没有任何反应。您可以使用任何其他值代替 null
,因为它没有任何效果。
您可以将三元与
array_merge()
一起使用。与空数组合并以避免推送任何东西。
$ar = array_merge($ar, $foo ? ["corge"] : []);