PHP 8.6.0 Beta 1 is available for testing

ReflectionClass::getStaticPropertyValue

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

ReflectionClass::getStaticPropertyValueObtiene el valor de una propiedad estática

Descripción

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

Obtiene el valor de una propiedad estática de esta clase.

Parámetros

name

El nombre de la propiedad estática para la que devolver un valor.

default

Un valor predeterminado a devolver en caso de que la clase no declare propiedades estáticas con el name dado. Si la propiedad no existe y se omite este argumento, se lanza una ReflectionException .

Valores devueltos

El valor de la propiedad estática.

Ejemplos

Ejemplo #1 Uso básico de ReflectionClass::getStaticPropertyValue()

<?php
class Apple {
 public static $color = 'Rojo';
}
$class = new ReflectionClass('Apple');
var_dump($class->getStaticPropertyValue('color'));
?>

El ejemplo anterior mostrará:

string(4) "Rojo"

Véase también

Found A Problem?

Learn How To Improve This PageSubmit a Pull RequestReport a Bug
+add a note

User Contributed Notes 3 notes

up
7
Antares
15 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
1 year ago
Note that ReflectionClass::getStaticPropertyValue() can also return values from private or protected properties.
up
-2
Mauro Gabriel Titimoli
16 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
?>
+add a note

AltStyle によって変換されたページ (->オリジナル) /