It seems this method has a security level different from the getStaticProperties method.
If you make two classes A and B looking like
<?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';
}
?>
Then the output will be an exception for the getStatic() call, when the getStatic2() will correctly return 'foo2';
ReflectionClass::getStaticPropertyValue
(PHP 5 >= 5.1.0)
ReflectionClass::getStaticPropertyValue — Duruk özelliğin değerini döndürür
Açıklama
Duruk özelliğin değerini döndürür.
Uyarı
Bu işlev hala belgelendirilmemiştir; sadece değiştirge listesi mevcuttur.
Değiştirgeler
-
isim -
Duruk özelliğin ismi.
-
öntanımlı -
Dönen Değerler
Ayrıca Bakınız
- ReflectionClass::getStaticProperties() - Duruk özellikleri döndürür
- ReflectionClass::setStaticPropertyValue() - Duruk özelliğe değer atar
Antares
16-Aug-2011 07:11
Mauro Gabriel Titimoli
21-Jan-2010 12:05
If you want to change a static property of a variable class...
PHP 5.2
<?php
$reflection = new ReflectionClass($className);
$staticPropertyReference = & $reflection->getStaticPropertyValue($staticPropertyName);
$staticPropertyReference = 'new value';
?>
PHP 5.3
<?php
$className::$$classProperty
?>
