看來此方法具有與 getStaticProperties 方法不同的安全性層級。
如果您建立兩個看起來像這樣的類別 A 和 B
<?php
class A{
protected static $static_var='foo';
public function getStatic(){
$class=new ReflectionClass($this);
return $class->getStaticPropertyValue('static_var');
}
public function getStatic2(){
$class=new ReflectionClass($this);
$staticProps=$class->getStaticProperties();
return $staticProps['static_var'];
}
public function __construct(){
echo $this->getStatic2();
echo $this->getStatic();
}
}
class B extends A{
protected static $static_var='foo2';
}
?>
則 getStatic() 呼叫會輸出例外,而 getStatic2() 會正確傳回 'foo2';