我目前正在使用这段代码,仅在变量不带有空引用时将其分配到数组中。是否有任何快捷/替代方法?
if (!is_null($foo)) {
$var['foo'] = $foo;
}
if (!is_null($bar)) {
$var['bar'] = $bar;
}
我目前正在使用这段代码,仅在变量不带有空引用时将其分配到数组中。是否有任何快捷/替代方法?
if (!is_null($foo)) {
$var['foo'] = $foo;
}
if (!is_null($bar)) {
$var['bar'] = $bar;
}
你可以使用三元运算符作为“快捷方式”:
is_null($foo) ?: $var['foo'] = $foo;
$var['foo'] = $foo
本身是有效的表达式——但这有点“歪曲”了运算符的整个概念。
- 编辑:正如其他评论中也有人问过的那样,更多的上下文会很有帮助。如果你不是出于纯粹的好奇心而问这个问题,而是因为你必须对多个变量执行此操作,那么将它们全部放入数组中,然后使用array_filter
在此之后“丢弃”null
值可能更加直接...$a = 'var';
For ($x = 1; $x < 3; $x++){
if (!is_null(${$a.$i})) {
$combinations[$a.$i] = ${$a.$i};
}
}
if (!is_null($foo)) $var['foo'] = $foo;
- swatkins