ReflectionProperty::__construct Создаёт объект класса ReflectionProperty &reftitle.description; public ReflectionProperty::__construct objectstringclass stringproperty &reftitle.parameters; class Строка, которая содержит имя класса для отражения, или объект. property Имя свойства, которое требуется отразить. &reftitle.errors; Метод выбросит исключение при попытке получить или установить значение защищённого или закрытого свойства класса. &reftitle.examples; Пример использования метода <methodname>ReflectionProperty::__construct</methodname> У%s%s%s%s свойство '%s' (которое %s)\n" . " есть модификаторы %s\n", $prop->isPublic() ? ' открытого' : '', $prop->isPrivate() ? ' закрытого' : '', $prop->isProtected() ? ' защищённого' : '', $prop->isStatic() ? ' статического' : '', $prop->getName(), $prop->isDefault() ? 'объявили во время компиляции' : 'создали во время исполнения кода', var_export(Reflection::getModifierNames($prop->getModifiers()), true) ); // Содаём экземпляр класса Str $obj= new Str(); // Поучаем текущее значение printf("---> Значение: "); var_dump($prop->getValue($obj)); // Изменяем значение $prop->setValue($obj, 10); printf("---> Установка значения 10, новое значение: "); var_dump($prop->getValue($obj)); // Сбрасываем объект var_dump($obj); ?> ]]> &example.outputs.similar; У открытого свойства 'length' (которое объявили во время компиляции) есть модификаторы array ( 0 => 'public', ) ---> Значение: int(5) ---> Установка значения 10, новое значение: int(10) object(Str)#2 (1) { ["length"]=> int(10) } ]]> Получение значений защищённых и закрытых свойств через класс <classname>ReflectionProperty</classname> setAccessible(true); var_dump($prop->getValue($obj)); // int(2) $prop = new ReflectionProperty('Foo', 'z'); $prop->setAccessible(true); var_dump($prop->getValue($obj)); // int(2) ?> ]]> &example.outputs.similar; &reftitle.seealso; ReflectionProperty::getName Конструкторы