downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

ReflectionProperty::isDefault> <ReflectionProperty::getName
[edit] Last updated: Fri, 24 May 2013

view this page in

ReflectionProperty::getValue

(PHP 5)

ReflectionProperty::getValueObtiene el valor

Descripción

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

Obtiene el valor de la propiedad.

Parámetros

object

Si la propiedad no fuera estática, se deberá adjuntar un objeto del que obtener la propiedad. Si se deseara obtener las propiedades predeterminadas sin proporcionar ningún objeto, utilice en su lugar ReflectionClass::getDefaultProperties().

Valores devueltos

Valor que contiene la propiedad.

Errores/Excepciones

Lanza ReflectionException si la propiedad no fuera accesible. Una propiedad protegida o privada puede hacerse accesible mediante ReflectionProperty::setAccessible().

Ejemplos

Ejemplo #1 Ejemplo de 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));
?>

El resultado del ejemplo sería:

string(6) "foobar"
string(6) "barfoo"
string(6) "foofoo"

Ver también



add a note add a note User Contributed Notes ReflectionProperty::getValue - [2 notes]
up
1
sergiy dot sokolenko at gmail dot com
2 years ago
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"
?>
up
-1
tedivm at tedivm dot com
3 years ago
Note this function does not return the value for everything, only public properties. Protected or private properties will result in a exception being thrown.

 
show source | credits | stats | sitemap | contact | advertising | mirror sites