У меня есть несколько классов, которые расширяют друг друга, каждый раз добавляя новые свойства.
Теперь мне нужно получить список всех свойств класса, но в том порядке, в котором они были объявлены, сначала со свойствами родительского класса.
Например :
class foo {
public $a = 1;
public $c = 2;
public $d = 3;
}
class foo2 extends foo {
public $b = 4;
}
$test = new foo2;
var_dump(get_object_vars($test));
Это дает :
array(4) { ["b"]=> int(4) ["a"]=> int(1) ["c"]=> int(2) ["d"]=> int(3) }
но я хочу :
array(4) { ["a"]=> int(1) ["c"]=> int(2) ["d"]=> int(3) ["b"]=> int(4) }
Можно ли как-то этого добиться?
ОБНОВЛЕНИЕ: Причина, по которой мне это нужно, заключается в том, что я конвертирую файл, использующий формат STEP (EXPRESS ISO 10303-21) (и обратно!). (Дополнительную информацию см. здесь: http://en.wikipedia.org/wiki/ISO_10303-21) Этот формат представляет собой некоторую структуру сериализованных объектов. Я воссоздал все классы объектов в PHP, но поскольку в STEP порядок свойств имеет решающее значение, мне нужен точно такой же порядок свойств.