PHP Conference Nagoya 2025

ReflectionClass::getStaticPropertyValue

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

ReflectionClass::getStaticPropertyValueDuruk özelliğin değerini döndürür

Açıklama

public ReflectionClass::getStaticPropertyValue(string $isim, mixed &$öntanımlı = ?): mixed

Sınıfın statik özelliğinin değerini döndürür.

Bağımsız Değişkenler

isim

Değeri döndürülecek statik özelliğin ismi.

öntanımlı

Sınıf içinde isim adında statik bir özellik bildirilmediği durumda dönecek öntanımlı değer. Eğer özellik mevcut değilse ve bu bağımsız değişken de atlanmışsa bir ReflectionException yavrulanır.

Dönen Değerler

Statik özelliğin değeri.

Örnekler

Örnek 1 - ReflectionClass::getStaticPropertyValue() temel kullanım örneği

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

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

Yukarıdaki örneğin çıktısı:

string(3) "Red"

Ayrıca Bakınız

add a note

User Contributed Notes 2 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
-2
Mauro Gabriel Titimoli
14 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