2011-11-06 61 views
1

的知名度假设我有类:PHP:标识一类变量

class MyClass { 

    protected $protected; 
    private $_private; 

    public function __get($name) { 
     return $this->{$name}; 
    } 

} 

我想“魔术”般地得到保护的变量,但不是私有变量。是否有内置的PHP函数可以帮助我识别类变量的可见性?

+2

我只是好奇,来自C++背景,没有反射,*为什么*你需要这样一个存取函数,以及这种代码解决了什么样的设计问题? (它几乎看起来像你试图把一个类作为一种数据库......) –

+0

我需要防止魔法获取者访问私有变量。 – Dave

+2

这看起来像我只是想让“受保护的成员公开”,但是......为什么要首先声明他们受到保护? –

回答

2
$refClass = new ReflectionClass('MyClass'); 
foreach ($refClass->getProperties() as $property) { 
    if ($property->isProtected()) echo $property->getName(); 
}