ReflectionProperty
PHP Manual

ReflectionProperty::__construct

(PHP 5)

ReflectionProperty::__constructConstruye un objeto de tipo ReflectionProperty

Descripción

ReflectionProperty::__construct ( mixed $class , string $name )

Advertencia

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Parámetros

class

Nombre de la clase que contiene la propiedad.

name

Nombre de la propiedad que se desea reflexionar.

Valores devueltos

No devuelve ningún valor.

Errores/Excepciones

Si se tratara de consultar o modificar propiedades privadas o protegidas de la clase, se lanzaría una excepción.

Ejemplos

Ejemplo #1 Ejemplo de ReflectionProperty::__construct()

<?php
class Texto
{
    public 
$longitud 5;
}

// Crea una instancia de la clase ReflectionProperty
$prop = new ReflectionProperty('Texto''longitud');

// Muestra información básica
printf(
    
"===> La propiedad %s%s%s%s '%s' (que está %s)\n" .
    
"     con los modificadores %s\n",
        
$prop->isPublic() ? ' pública' '',
        
$prop->isPrivate() ? ' privada' '',
        
$prop->isProtected() ? ' protegida' '',
        
$prop->isStatic() ? ' estática' '',
        
$prop->getName(),
        
$prop->isDefault() ? 'declarada en tiempo de compilación' 'creada en tiempo de ejecución',
        
var_export(Reflection::getModifierNames($prop->getModifiers()), 1)
);

// Crea una instancia de Texto
$obj= new Texto();

// Obtiene el valor actual
printf("---> Valor: ");
var_dump($prop->getValue($obj));

// Cambiar valor
$prop->setValue($obj10);
printf("---> Al establecer como valor 10, su nuevo valor es: ");
var_dump($prop->getValue($obj));

// Volcar objeto
var_dump($obj);
?>

El resultado del ejemplo sería algo similar a:

===> La propiedad  pública 'longitud' (que está declarada en tiempo de compilación)
     con los modificadores array (
  0 => 'public',
)
---> Valor: int(5)
---> Al establecer como valor 10, su nuevo valor es: int(10)
object(Texto)#2 (1) {
  ["longitud"]=>
  int(10)
}

Ejemplo #2 Consultar el valor de propiedades privadas y protegidas con la clase ReflectionProperty

<?php

class Foo {
    public 
$x 1;
    protected 
$y 2;
    private 
$z 3;
}

$obj = new Foo;

$prop = new ReflectionProperty('Foo''y');
$prop->setAccessible(true); /* Desde PHP 5.3.0 */
var_dump($prop->getValue($obj)); // int(2)

$prop = new ReflectionProperty('Foo''z');
$prop->setAccessible(true); /* Desde PHP 5.3.0 */
var_dump($prop->getValue($obj)); // int(2)

?>

El resultado del ejemplo sería algo similar a:

int(2)
int(3)

Ver también


ReflectionProperty
PHP Manual