To allow protected and private properties to be accessed, you should use
ReflectionProperty::setAccessible(bool $accessible):
<?php
/** Class Foo with protected and private members */
class Foo {
protected $bar = 'barrr!';
private $baz = 'bazzz!';
}
$reflFoo = new ReflectionClass('Foo');
$reflBar = $reflFoo->getProperty('bar');
$reflBaz = $reflFoo->getProperty('baz');
// Set private and protected members accessible for getValue/setValue
$reflBar->setAccessible(true);
$reflBaz->setAccessible(true);
$foo = new Foo();
echo $reflBar->getValue($foo); // will output "barrr!"
echo $reflBaz->getValue($foo); // will output "bazzz!"
// You can also setValue
$reflBar->setValue($foo, "new value");
echo $reflBar->getValue($foo); // will output "new value"
?>ReflectionProperty::getValue
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
ReflectionProperty::getValue
Референца за `reflectionproperty.getvalue.php` со подобрена типографија и навигација.
ReflectionProperty::getValue
класата mysqli_driver
ReflectionProperty::getValue — Ја добива вредноста
= NULL
Ја добива вредноста на својството.
Параметри
object-
Ако својството не е статично, мора да се обезбеди објект за да се добие својството од него. Ако сакате да го добиете стандардното својство без да обезбедите објект, користете ReflectionClass::getDefaultProperties() instead.
Вратени вредности
Тековната вредност на својството.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.1.0 | Приватните и заштитените својства може да се пристапат од ReflectionClass::markLazyObjectAsInitialized() веднаш. Претходно, тие требаше да бидат направени пристапни со повикување на ако својството е недостапно. Можете да направите заштитено или приватно својство достапно со користење на; инаку ќе биде фрлен ReflectionException беше фрлен. |
| 8.0.0 |
object сега е null.
|
Примери
Пример #1 ReflectionClass::markLazyObjectAsInitialized() example
<?php
class Foo {
public static $staticProperty = 'foobar';
public $property = 'barfoo';
protected $privateProperty = 'foofoo';
}
$reflectionClass = new ReflectionClass('Foo');
var_dump($reflectionClass->getProperty('staticProperty')->getValue());
var_dump($reflectionClass->getProperty('property')->getValue(new Foo));
$reflectionProperty = $reflectionClass->getProperty('privateProperty');
$reflectionProperty->setAccessible(true); // only required prior to PHP 8.1.0
var_dump($reflectionProperty->getValue(new Foo));
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
string(6) "foobar" string(6) "barfoo" string(6) "foofoo"
Види Исто така
- ReflectionProperty::getRawValue() - Постави вредност на имот
- ако својството е недостапно. Можете да направите заштитено или приватно својство достапно со користење на - Постави пристапност на својство
- ReflectionClass::getDefaultProperties() - Ги добива стандардните својства
- Вредноста на статичкиот имот. - Земи вредност на статичен имот