Наш чат в Telegram для обмена идеями, проектами, мыслями, людьми в сфере ИТ г.Ростова-на-Дону: @it_rostov

ReflectionProperty::__construct

(PHP 5)

ReflectionProperty::__construct — Construct a ReflectionProperty object


Описание

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

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


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

class

The class name, that contains the property.

name

The name of the property being reflected.


Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Ошибки

Trying to get or set private or protected class property's values will result in an exception being thrown.


Примеры

Пример #1 ReflectionProperty::__construct() example
class String
{
    public $length  = 5;
}
// Create an instance of the ReflectionProperty class
$prop = new ReflectionProperty('String', '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 String
$obj= new String();
// 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 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)
}

Пример #2 Getting value from private and protected properties using ReflectionProperty class
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)

Результатом выполнения данного примера будет что-то подобное:


int(2)
int(3)


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


Описание класса reflectionproperty, примеры использования класса reflectionproperty.

Описание на ru2.php.net
Описание на php.ru