ReflectionProperty::getValue

(PHP 5)

ReflectionProperty::getValueПолучение значения

Описание

public mixed ReflectionProperty::getValue ( object $object )
public mixed ReflectionProperty::getValue ( void )

Получает значение свойства.

Список параметров

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"

Смотрите также

Коментарии

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"
?>
2010-06-28 18:48:31
http://php5.kiev.ua/manual/ru/reflectionproperty.getvalue.html

    Поддержать сайт на родительском проекте КГБ