値ではない私は、これはarray_column()
のために期待される動作であると確信している:PHPのarray_column()を返すオブジェクトfalsyが
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()
を使用していますか?
0
とfalse
が通常の有効なオブジェクトプロパティ値である場合、なぜ偽の値を返さないのですか?array_column()
は値を返すためのものです。
何が最善の策ですか?
は私のためのバグのように思えます。 – Rizier123
PHPのバージョンは? –
Windows/IIS上のPHP 7.0.0 ... –