Reflection и другие встроенные функции ООП
Встроенные функции позволяют получить информацию о классах и объектах. Можно получить имя класса, которому принадлежит объект, равно как и все его свойства и методы. Используя эти функции, можно установить не только принадлежность объекта к конкретному классу, но и определить порядок наследования. К примеру, какой класс наследует класс данного объекта.
Reflection APIрефлексия в контексте программирования, это процесс при котором программа может наблюдать и модифицировать свою собственную структуру и поведение во время выполнения, подробнее в описанииget_class_methods()возвращает массив имен методов класса с заданным именем без создания экземпляра класса черезnew, подробнее в описанииget_class_vars()возвращает массив имен свойств класса с заданным именем без создания экземпляра класса черезnew, подробнее в описаниget_object_vars()возвращает ассоциативный массив с информацией обо всех свойствах объекта с заданным именем, подробнее в описаниmethod_exists()проверяет, поддерживается ли объектом метод с заданным именем, подробнее в описаниget_class()возвращает имя класса, к которому относится объект с заданным именем, подробнее в описаниget_parent_class()возвращает имя родительского класса, если он есть для объекта с заданным именем, подробнее в описаниis_subclass_of()проверяет, был ли объект создан на базе класса, имеющего родительский класс с заданным именем, подробнее в описаниget_declared_classes()возвращает массив с именами всех определенных классов, подробнее в описани
Reflection
Reflection API позволяют узнать всю информацию о классе, функции, методе, исключениях и т.д.
ReflectionClass ()
Класс ReflectionClass() предоставляет методы, которые собирают информацию обо всех аспектах заданного класса, в качестве единственного аргумента передается экземпляр класса:
$classInfo = new ReflectionClass(object имя_обьекта) : object
ReflectionObject ()
Расширяет класс ReflectionClass и предоставляет информацию об объекте, в качестве единственного аргумента передается экземпляр класса:
$objectInfo = new ReflectionObject(object имя_обьекта) : object
ReflectionMethod ()
Представляет информацию о методе класса и позволяет вызывать его, в качестве аргумента передается экземпляр класса и название метода:
$methodInfo = new ReflectionMethod(object имя_обьекта, string имя_метода) : object
ReflectionProperty ()
Представляет информацию о свойстве класса и позволяет взаимодействовать с ним, в качестве аргумента передается экземпляр класса и название свойства:
$propertyInfo = new ReflectionProperty(object имя_обьекта, string имя_свойства) : object
ReflectionFunction ()
Представляет информацию о функции и позволяет вызывать ее, в качестве единственного аргумента передается имя функции:
$functionInfo = new ReflectionFunction(string имя_функции) : object
ReflectionParameter ()
Представляет информацию о параметре функции или метода и позволяет получать его характеристики, первый параметр, массив содержащий название класса и название метода, второй параметр, порядковый номер параметра который нам нужен:
$parameterInfo = new ReflectionParameter([string имя_класса, string имя_метода], int порядковый_номер_параметра) : object
ReflectionException ()
Исключение, которое может быть выброшено в процессе работы с Reflection API.
get_class_methods ()
Функция get_class_methods() возвращает массив имен методов класса с заданным именем без создания экземпляра класса через new:
get_class_methods(string имя_класса) : array
get_class_vars ()
Функция get_class_vars() возвращает массив имен свойств класса с заданным именем без создания экземпляра класса через new:
get_class_vars(string имя_класса) : array
get_object_vars ()
Функция get_object_vars() возвращает ассоциативный массив с информацией обо всех свойствах объекта с заданным именем:
get_object_vars(object имя_обьекта) : array
method_exists ()
Функция method_exists() проверяет, поддерживается ли объектом метод с заданным именем. Если метод поддерживается, функция возвращает TRUE, в противном случае возвращается FALSE:
method_exists(object имя_обьекта, string имя_метода) : bool
get_class ()
Функция get_class() возвращает имя класса, к которому относится объект с заданным именем:
get_class(object имя_объекта) : string
get_parent_class ()
Функция get_parent_class() возвращает имя родительского класса, если он есть для объекта с заданным именем:
get_parent_class(object имя_обьекта) : string
is_subclass_of ()
Функция is_subclass_of() проверяет, был ли объект создан на базе класса, имеющего родительский класс с заданным именем. Функция возвращает TRUE, если проверка дает положительный результат и FALSE в противном случае:
is_subclass_of(object объект, string имя_класса) : bool
get_declared_classes ()
Функция get_declared_classes() возвращает массив с именами всех определенных классов:
get_declared_classes() : array
Остальные методы
__autoload()попытка загрузить неопределённый класс, подробнее в документации.class_alias()создаёт псевдоним для указанного класса, подробнее в документацииclass_exists()проверяет, был ли объявлен класс, подробнее в документацииenum_exists()проверяет, определено ли перечисление, подробнее в документацииget_called_class()имя класса, полученное с помощью позднего статического связывания, подробнее в документацииget_declared_interfaces()возвращает массив всех объявленных интерфейсов, подробнее в документацииget_declared_traits()возвращает массив со всеми объявленными трейтами, подробнее в документацииget_mangled_object_vars()возвращает массив искажённых свойств объекта, подробнее в документацииinterface_exists()проверяет, определён ли интерфейс, подробнее в документацииis_a()проверяет, является ли объект указанным типом или подтипом, подробнее в документацииproperty_exists()проверяет, содержит ли объект или класс указанный атрибут, подробнее в документацииtrait_exists()проверяет, существует ли трейт, подробнее в документации