PHP仅在值存在时才分配给数组

时间:2015-07-25 02:13:43

标签: php

我目前正在使用此代码将变量分配给数组,前提是它不带空引用。是他们的任何捷径/替代方法吗?

if (!is_null($foo)) {
    $var['foo'] = $foo;
}

if (!is_null($bar)) {
    $var['bar'] = $bar;
}

2 个答案:

答案 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};
  }
}