ReflectionProperty::getValue
(PHP 5, PHP 7)
ReflectionProperty::getValue — Получение значения
Описание
Получает значение свойства.
Список параметров
-
object
-
Если свойство не статическое, необходимо передать объект, из которого требуется это свойство получить. Если вам нужно получить свойство по умолчанию, не предоставляя объект, используйте функцию ReflectionClass::getDefaultProperties().
Возвращаемые значения
Текущее значение свойства.
Ошибки
Вызывает исключение ReflectionException, если свойство недоступно. Защищенные и частные свойства можно сделать доступными функцией ReflectionProperty::setAccessible().
Примеры
Пример #1 Пример использования ReflectionProperty::getValue()
<?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);
var_dump($reflectionProperty->getValue(new Foo));
?>
Результат выполнения данного примера:
string(6) "foobar" string(6) "barfoo" string(6) "foofoo"
Смотрите также
- ReflectionProperty::setValue() - Задание значения свойству
- ReflectionProperty::setAccessible() - Задание доступности свойства
- ReflectionClass::getDefaultProperties() - Возвращает свойства по умолчанию
- ReflectionClass::getStaticPropertyValue() - Возвращает значение static свойства
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Расширения, относящиеся к переменным и типам
- Reflection
- Функция ReflectionProperty::__clone() - Копирующий конструктор
- Функция ReflectionProperty::__construct() - Конструктор класса ReflectionProperty
- Функция ReflectionProperty::export() - Экспорт
- Функция ReflectionProperty::getDeclaringClass() - Получение объявляющего класса
- Функция ReflectionProperty::getDocComment() - Получение документируемого комментария
- Функция ReflectionProperty::getModifiers() - Получение модификаторов
- Функция ReflectionProperty::getName() - Получение имени свойства
- Функция ReflectionProperty::getValue() - Получение значения
- Функция ReflectionProperty::isDefault() - Проверяет, является ли значение свойством по умолчанию
- Функция ReflectionProperty::isPrivate() - Проверяет, является ли свойство частным (private)
- Функция ReflectionProperty::isProtected() - Проверяет, является ли свойство защищенным (protected)
- Функция ReflectionProperty::isPublic() - Проверяет, является ли свойство общедоступным (public)
- Функция ReflectionProperty::isStatic() - Проверка, является ли свойство статическим
- Функция ReflectionProperty::setAccessible() - Задание доступности свойства
- Функция ReflectionProperty::setValue() - Задание значения свойству
- Функция ReflectionProperty::__toString() - Преобразование в строку
Коментарии
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"
?>