我有一个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'
Run Code Online (Sandbox Code Playgroud)
从类本身的方法中获取对象的唯一公共属性的最简洁方法是什么?public和protected都可见?
我看过:
但这似乎并没有解决我的问题,因为它指向get_object_vars()从对象外部使用.