(PHP 5, PHP 7)
ReflectionProperty::__construct — Construct a ReflectionProperty object
public ReflectionProperty::__construct ( mixed $class , string $name )
This function is currently not documented; only its argument list is available.
class
The class name, that contains the property.
name
The name of the property being reflected.
No value is returned.
Trying to get or set private or protected class property's values will result in an exception being thrown.
Example #1 ReflectionProperty::__construct() example
<?php class Str { public $length = 5; } // Create an instance of the ReflectionProperty class $prop = new ReflectionProperty('Str', 'length'); // Print out basic information 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) ); // Create an instance of Str $obj= new Str(); // Get current value printf("---> Value is: "); var_dump($prop->getValue($obj)); // Change value $prop->setValue($obj, 10); printf("---> Setting value to 10, new value is: "); var_dump($prop->getValue($obj)); // Dump object var_dump($obj); ?>
The above example will output something similar to:
===> 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(Str)#2 (1) { ["length"]=> int(10) }
Example #2 Getting value from private and protected properties using ReflectionProperty class
<?php class Foo { public $x = 1; protected $y = 2; private $z = 3; } $obj = new Foo; $prop = new ReflectionProperty('Foo', 'y'); $prop->setAccessible(true); /* As of PHP 5.3.0 */ var_dump($prop->getValue($obj)); // int(2) $prop = new ReflectionProperty('Foo', 'z'); $prop->setAccessible(true); /* As of PHP 5.3.0 */ var_dump($prop->getValue($obj)); // int(2) ?>
The above example will output something similar to:
int(2) int(3)
© 1997–2020 The PHP Documentation Group
Licensed under the Creative Commons Attribution License v3.0 or later.
https://www.php.net/manual/en/reflectionproperty.construct.php