- array_map: documentation ( source)
- var_dump: documentation ( source)
- method_exists: documentation ( source)
<?php
class ObjectToArrayConverter
{
/**
* @param mixed $value
*
* @raturn array
*/
public static function toArray($value)
{
if (! (is_object($value) || is_array($value))) {
return $value;
}
if (is_object($value) && method_exists($value, '__toArray')) {
return $value->__toArray();
}
return array_map(__METHOD__, (array) $value);
}
}
$obj1 = new stdClass();
$obj2 = new stdClass();
$obj1->foo = 'foo';
$obj1->someArr = [];
$obj1->obj2 = $obj2;
$obj2->bar = 'bar';
var_dump(ObjectToArrayConverter::toArray($obj1));