gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 00:08:45 26 4
gpt4 key购买 nike

我确定这是 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() 是为了返回值..?

什么是最好的解决方法..?

最佳答案

这确实看起来像一个错误,我会 report it as such

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

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

关于PHP array_column() 不返回对象虚假值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36642467/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com