我有一些相互扩展的类,每次都添加更多属性。
现在我需要获取一个类的所有属性的列表,但是按照声明它们的顺序,首先是父类的属性。
例如 :
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 中属性的顺序至关重要,我需要完全相同的属性顺序。