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 референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
ReflectionClass::getStaticPropertyValue
Референца за `reflectionclass.getstaticpropertyvalue.php` со подобрена типографија и навигација.
ReflectionClass::getStaticPropertyValue
(PHP 5 >= 5.1.2, PHP 7, PHP 8)
ReflectionClass::getStaticPropertyValue — (PHP 5 >= 5.1.2, PHP 7, PHP 8)
= NULL
Земи ја вредноста на статичкиот имот
Параметри
name-
Ја зема вредноста на статичкиот имот на оваа класа.
def_value-
Името на статичкиот имот за кој треба да се врати вредност.
nameСтандардна вредност што треба да се врати во случај класата да не декларира статички имот со дадениот ReflectionException се фрла.
Вратени вредности
. Ако имотот не постои и овој аргумент е изоставен, а
Примери
Пример #1 Основна употреба на Вредноста на статичкиот имот.
<?php
class Apple {
public static $color = 'Red';
}
$class = new ReflectionClass('Apple');
var_dump($class->getStaticPropertyValue('color'));
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
string(3) "Red"
Види Исто така
- ReflectionClass::getStaticPropertyValue() ReflectionClass::getStaticProperties()
- - Земи ги статичките имоти - Поставува јавна статична вредност на својство
Белешки од корисници 3 белешки
Note that ReflectionClass::getStaticPropertyValue() can also return values from private or protected properties.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
?>