ReflectionClass::getStaticPropertyValue

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

ReflectionClass::getStaticPropertyValueGets static property value

Descrizione

public ReflectionClass::getStaticPropertyValue(string $name, mixed &$def_value = ?): mixed

Gets the value of a static property on this class.

Elenco dei parametri

name

The name of the static property for which to return a value.

def_value

A default value to return in case the class does not declare a static property with the given name. If the property does not exist and this argument is omitted, a ReflectionException is thrown.

Valori restituiti

The value of the static property.

Esempi

Example #1 Basic usage of ReflectionClass::getStaticPropertyValue()

<?php
class Apple {
public static
$color = 'Red';
}

$class = new ReflectionClass('Apple');
var_dump($class->getStaticPropertyValue('color'));
?>

Il precedente esempio visualizzerà:

string(3) "Red"

Vedere anche:

add a note

User Contributed Notes 3 notes

up
7
Antares
13 years ago
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';
up
0
tracid2008 at atgmail dot com
7 months ago
Note that ReflectionClass::getStaticPropertyValue() can also return values from private or protected properties.
up
-2
Mauro Gabriel Titimoli
15 years ago
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?>
To Top