PHP: Reflection API - ReflectionProperty
Класс ReflectionProperty - предоставляет набор методов для получения информации и работы на уровне свойств класса. С помощью этого инструментария можно не только получать информацию, но и принудительно поменять уровень доступа к свойствам.
ReflectionProperty implements Reflector
/* Константы */
- const integer IS_STATIC = 1;
- const integer IS_PUBLIC = 256;
- const integer IS_PROTECTED = 512;
- const integer IS_PRIVATE = 1024;
/* Свойства */
- public $ReflectionClass->name;
- public $class;
/* Методы */
Конструктор класса. Первый параметр это либо строка - имя класса, либо объект, второй параметр: имя интересующего свойства:
class SomeClass { public $prop0 = 333; protected $prop1 = 555; private $prop2 = 777; } var_dump( new ReflectionProperty('SomeClass', 'prop1') );
Эти строки дадут такой результат:
object(ReflectionProperty) #1 (2) { ["name"]= > string(5)"prop1" ["class"] = > string(9)"SomeClass" }
Но если свойство рассматриваемого класса окажется private, то PHP сгенерит исключение: 'ReflectionException' с сообщением: 'Свойство SomeClass::$prop3 не существует'
Предоставляет информацию о свойстве. Первый параметр имя класса или объект, второй параметр - имя свойства, третий (необязательный) параметр отвечает за то, будет ли инфа выведена на экран, или возвращена строкой.
class SomeClass { public $prop0 = 333; protected $prop1 = 555; private $prop2 = 777; } Reflection::export( new ReflectionProperty('SomeClass', 'prop1') );
Возвращает информацию о классе исследуемого метода. Результат работы этого метода мне напомнил результат получаемый с помощью : Reflection::export( new ReflectionClass('Exception') ); - Да похоже, что в Reflection API тоже присутствует синтаксичечкий сахар.
Вернёт строку комментария помещённого в файле, где описан класс.
Позволяет получить числовое представление модификаторов.
Вернёт имя свойства
Вернёт текущее значение свойства. Если свойство недоступно, или объявлено как protected или private, будет выброшено исключение класса ReflectionException. Но вы можете получить доступ с помощью ReflectionProperty::setAccessible()
Проверка, имеет ли свойство значение по-умолчанию.
Проверка, уровня доступа свойства.
Проверка, является ли свойство статичным.
Метод позволяет сделать доступными закрытые свойства класса, нужно лишь передать параметр true.
Метод позволяет установить значение свойства.
Аренда машины на камчатке у нас на сайте
Актуальная информация аренда машины на камчатке у нас на сайте.
по-вулканам.рф
Одежды для девочек
Большой ассортимент одежды для девочек в интернет-магазине с доставкой.
richfamily.ru
Добавить комментарий
Информация копипастерам
Внимание! Копирование контента с сайта, возможно только с разрешения администратора. Т.е. Меня! Я скорее всего разрешу Вам это сделать, в обмен на живую ссылку, на статью оригинал.