0

是否有非范围敏感的替代方案get_object_vars()

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

4

2 回答 2

2

这可以通过反射 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);

?>
于 2013-02-10T22:09:57.457 回答
1

只需将其包装在一个函数中。

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

现在您所要做的就是调用$get_vars($object).

于 2013-02-10T22:05:55.480 回答