3
class ParentClass
{
public function list()
{
foreach ($this as $property => $value)
{
if (is_public($this->$property))
echo 'public: ';
else if (is_protected($this->$property))
echo 'protected: ';
echo "$property => $value" . PHP_EOL;
}
}
}
class ChildClass extends ParentClass
{
protected $Size = 4;
protected $Type = 4;
public $SubT = 1;
public $UVal = NULL;
}
$CC = new ChildClass;
$CC->list();
問題是什麼?如何[實際使用Reflectionclases提供給你?](http://www.php.net/reflection) – Wrikken 2010-10-02 20:13:12
反射類是唯一的方法來做到這一點?爲什麼沒有可用的直接功能? – 2010-10-02 20:19:44
因爲它對於存在的函數沒有意義。該函數將獲取變量的值。除非它是這樣的:'is_public($ this,'propertyName')'...但即使這樣也沒有意義,因爲有一些可以模擬這些屬性的魔術方法('__get')。所以反射是最好的方法... – ircmaxell 2010-10-02 20:59:57