ReflectionProperty
PHP Manual

ReflectionProperty::__construct

(PHP 5)

ReflectionProperty::__constructConstruit un nouvel objet ReflectionProperty

Description

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

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

class

Le nom de la classe, qui contient la propriété.

name

Le nom de la propriété à refléter.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Le fait de tenter de récupérer ou définir la valeur d'une propriété privée ou protégée d'une classe émettra une exception.

Exemples

Exemple #1 Exemple avec ReflectionProperty::__construct()

<?php
class String
{
    public 
$length  5;
}

// Création d'une instance de la classe ReflectionProperty
$prop = new ReflectionProperty('String''length');

// Affichage de quelques informations
printf(
    
"===> The%s%s%s%s property '%s' (which was %s)\n" .
    
"     having the modifiers %s\n",
        
$prop->isPublic() ? ' public' '',
        
$prop->isPrivate() ? ' private' '',
        
$prop->isProtected() ? ' protected' '',
        
$prop->isStatic() ? ' static' '',
        
$prop->getName(),
        
$prop->isDefault() ? 'declared at compile-time' 'created at run-time',
        
var_export(Reflection::getModifierNames($prop->getModifiers()), 1)
);

// Création d'une instance de chaîne
$obj= new String();

// Récupère la valeur courante
printf("---> Value is: ");
var_dump($prop->getValue($obj));

// Modifie la valeur
$prop->setValue($obj10);
printf("---> Setting value to 10, new value is: ");
var_dump($prop->getValue($obj));

// Affiche l'objet
var_dump($obj);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

===> The public property 'length' (which was declared at compile-time)
     having the modifiers array (
  0 => 'public',
)
---> Value is: int(5)
---> Setting value to 10, new value is: int(10)
object(String)#2 (1) {
  ["length"]=>
  int(10)
}

Exemple #2 Récupération d'une valeur depuis une propriété privée ou protégée en utilisant la classe ReflectionProperty

<?php

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

$obj = new Foo;

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

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

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(2)
int(3)

Voir aussi


ReflectionProperty
PHP Manual