我目前正在使用此代码将一个变量分配给数组,前提是它不携带空引用。他们有什么捷径/替代方法吗?
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
值可能更直接......
关于PHP 仅在值存在时才分配给数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31622172/