PHP array_column()不返回对象的假值

Ste*_*ast 18 php php-7

我确信这是预期的行为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>';
Run Code Online (Sandbox Code Playgroud)

返回:

Array (
    [0] => 7
    [1] => 3
    [2] => 8
    [3] => 2
    [4] => 6
)
Run Code Online (Sandbox Code Playgroud)

0缺失.也许它在empty()内部使用..?

为什么它不会返回有价值的值,0并且false可以是正常的有效对象属性值,并且array_column()用于返回值..?

什么是最好的工作...?

Mar*_*ker 6

它当然看起来像一个bug,我会这样报告

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

print_r(array_column(json_decode(json_encode($objects), true), 'prop'));
Run Code Online (Sandbox Code Playgroud)