get_object_vars的非范围敏感替代方案?

时间:2013-02-10 21:56:29

标签: php

是否存在对get_object_vars()的非范围敏感的替代方案?

我需要从对象中获取所有公共属性

2 个答案:

答案 0 :(得分:1)

将其包装在一个函数中。

$get_vars = create_function('$object', 'return get_object_vars($object);');

现在您所要做的就是致电$get_vars($object)

答案 1 :(得分:1)

可以使用reflection API

完成此操作
<?php
class Foo {
    public    $foo  = 1;
    protected $bar  = 2;
    private   $baz  = 3;
}

$foo = new Foo();

$reflect = new ReflectionClass($foo);
$props   = $reflect->getProperties(ReflectionProperty::IS_PUBLIC);

var_dump($props);

?>