Я интегрирую API на свой сайт, который работает с данными, хранящимися в объектах, в то время как мой код написан с использованием массивов. Мне нужна быстрая и грязная функция для преобразования объекта в массив. Пример: простой объект $object = new StdClass;
$object->foo = 1;
$object->bar = 2;
var_dump( (array) $object );
Вывод: array(2) {
'foo' => int(1)
'bar' => int(2)
}
Пример: сложный объект class Foo
{
private $foo;
protected $bar;
public $baz;
public function __construct()
{
$this->foo = 1;
$this->bar = 2;
$this->baz = new StdClass;
}
}
var_dump( (array) new Foo );
Выход (с редактированием \0s для ясности): array(3) {
'\0Foo\0foo' => int(1)
'\0*\0bar' => int(2)
'baz' => class stdClass#2 (0) {}
}
Вывод с var_export вместо var_dump: array (
'' . "\0" . 'Foo' . "\0" . 'foo' => 1,
'' . "\0" . '*' . "\0" . 'bar' => 2,
'baz' =>
stdClass::__set_state(array(
)),
)
Указание этого способа не приведет к глу