- var_dump: documentation ( source)
- get_object_vars: documentation ( source)
<?php
/**
* @return array<string, mixed>
*/
function objectToArray(object $object): array
{
return @(fn (): array => get_object_vars($this))->call($object) ?? get_object_vars($object);
}
final class A
{
private $a = 'incapsulated string';
}
// user-defined class instance
var_dump(objectToArray(new A()));
// internal stdClass instance
$object = new stdClass();
$object->a = 1;
var_dump(objectToArray($object));
// internal DateTimeImmutable class instance
var_dump(objectToArray(new DateTimeImmutable()));