我目前正在使用此代码将变量分配给数组,前提是它不带空引用。是他们的任何捷径/替代方法吗?
if (!is_null($foo)) {
$var['foo'] = $foo;
}
if (!is_null($bar)) {
$var['bar'] = $bar;
}
答案 0 :(得分:3)
你可以使用三元运算符作为“捷径”:
is_null($foo) ?: $var['foo'] = $foo;
- 但我不会真的推荐这个。
它的工作原理是因为$var['foo'] = $foo
本身就是一个有效的表达式 - 但它有点“颠覆”运算符的整个概念。
编辑:正如其他人在评论中提到的那样,更多的背景会有所帮助。如果你不是出于纯粹的好奇心问这个问题,而是因为你必须为多个变量做这个 - 然后在任何情况下将它们全部放入数组中,然后使用array_filter
来“抛弃”{之后的{1}}值可能更直接......
答案 1 :(得分:0)
$a = 'var';
For ($x = 1; $x < 3; $x++){
if (!is_null(${$a.$i})) {
$combinations[$a.$i] = ${$a.$i};
}
}