get_object_vars() Does Not Work On ArrayObject
ArrayObject used to export its properties as they were defined in the array. Since PHP 7.4, ArrayObject does not export any property anymore. They are still accessible via the normal property syntax, just not with get_object_vars() anymore.
PHP code
<?php
// Illustration courtesy of Doug Bierer
$obj = new ArrayObject(['A' => 1,'B' => 2,'C' => 3]);
var_dump($obj->getArrayCopy());
var_dump(get_object_vars($obj));
//var_dump((array) $obj);
?>
Before
array(3) {
[A]=>
int(1)
[B]=>
int(2)
[C]=>
int(3)
}
array(3) {
[A]=>
int(1)
[B]=>
int(2)
[C]=>
int(3)
}
After
array(3) {
[A]=>
int(1)
[B]=>
int(2)
[C]=>
int(3)
}
array(0) {
}
PHP version change
This behavior changed in 7.4.