【发布时间】:2012-10-18 21:52:55
【问题描述】:
我有一个类 Foo 具有公共和受保护的属性。 Foo 需要有一个非静态方法getPublicVars(),它返回Foo 的所有公共属性的列表(这只是一个例子,我从Foo 外部知道调用get_object_vars() 的对象将完成此操作,并且不需要我的getPublicVars() 方法。
注意:这还必须返回在运行时分配给类实例(对象)的动态声明的属性,这些属性未在类的定义中定义。
示例如下:
class Foo{
private $bar = '123';
protect $boo = '456';
public $beer = 'yum';
//will return an array or comma seperated list
public function getPublicVars(){
// thar' be magic here...
}
}
$foo = new Foo();
$foo->tricky = 'dynamically added var';
$result = $foo->getPublicVars();
var_dump($result); // array or comma list with 'tricky' and 'beer'
从类自己的方法中获取对象的唯一公共属性的最简洁方法是什么,其中公共和受保护都是可见的?
我看过:
但这似乎并没有解决我的问题,因为它指向从对象外部使用get_object_vars()。
【问题讨论】:
标签: php oop reflection