PHP array_column()未返回对象错误值


PHP array_column() not returning object falsy values

我确信这是array_column():的预期行为

class myObj {
    public $prop;
    public function __construct(int $prop) {
        $this->prop = $prop;
    }
}
$objects = [
    new myObj(7),
    new myObj(3),
    new myObj(8),
    new myObj(0),
    new myObj(2),
    new myObj(6)
];
echo '<pre>';
print_r(array_column($objects, 'prop'));
echo '</pre>';

退货:

Array (
    [0] => 7
    [1] => 3
    [2] => 8
    [3] => 2
    [4] => 6
)

缺少0。也许它在内部使用empty()。。?

0false可以是正常有效的对象属性值,而array_column()用于返回值..时,为什么它不返回虚假值。。?

什么是最好的工作。。?

这看起来确实是一个错误,我会将其报告为

您可以通过将对象数组转换为嵌套数组来解决此问题:

print_r(array_column(json_decode(json_encode($objects), true), 'prop'));