Есть объект класса File:
<?php
declare(strict_types = 1);
namespace asoft\plain;
class File extends PlainElement
{
protected $href;
protected $title;
protected $size;
protected function getPropChecks()
{
$checks = [
'href' => array(['is_string', true]),
'title' => array(['is_string', true]),
'size' => array(['is_int', true])
];
return parent::getPropChecks() + $checks;
}
}
Класс использует защищенные свойства и доступ к ним через магические методы (с проверкой типа).
Понадобилось конвертировать такой объект в массив. Вместо индексов ['href'], ['title'] и т. д. получилась какая-то белиберда (var_export результата приведения с помощью (array)):
array (
'' . "\0" . '*' . "\0" . 'href' => 'teh_karta_610h400h340.pdf',
'' . "\0" . '*' . "\0" . 'title' => 'File 1 descr',
'' . "\0" . '*' . "\0" . 'size' => 1392034,
'' . "\0" . '*' . "\0" . 'number' => 1,
)
Что это за ересь и как сделать конверсию в нормальный ассоциативный массив?