此方法似乎具有与 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';