PHP 5.5.16 is released

ReflectionClass::getStaticPropertyValue

(PHP 5 >= 5.1.0)

ReflectionClass::getStaticPropertyValueRécupère la valeur d'une propriété statique

Description

public mixed ReflectionClass::getStaticPropertyValue ( string $name [, mixed &$def_value ] )

Récupère la valeur d'une propriété statique de la classe.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

Le nom de la propriété statique pour laquelle nous souhaitons récupérer la valeur.

def_value

Valeurs de retour

La valeur de la propriété statique.

Exemples

Exemple #1 Exemple avec ReflectionClass::getStaticPropertyValue()

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

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

L'exemple ci-dessus va afficher :

string(3) "Red"

Voir aussi

add a note add a note

User Contributed Notes 2 notes

up
1
Antares
3 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
-1
Mauro Gabriel Titimoli
4 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