Класс ReflectionClass
(PHP 5, PHP 7, PHP 8)
Введение
Класс ReflectionClass сообщает
информацию о классе.
Обзор класса
/* Константы */
/* Свойства */
/* Методы */
}
Свойства
- name
-
Имя класса. Доступно только для чтения и выбрасывает
исключение ReflectionException при попытке записи.
Предопределённые константы
Содержание
- ReflectionClass::__construct — Создаёт объект класса ReflectionClass
- ReflectionClass::export — Экспортирует класс
- ReflectionClass::getAttributes — Получает атрибуты
- ReflectionClass::getConstant — Возвращает определённую константу
- ReflectionClass::getConstants — Возвращает константы
- ReflectionClass::getConstructor — Возвращает конструктор класса
- ReflectionClass::getDefaultProperties — Возвращает свойства по умолчанию
- ReflectionClass::getDocComment — Возвращает doc-блоки комментариев
- ReflectionClass::getEndLine — Возвращает номер последней строки
- ReflectionClass::getExtension — Возвращает объект класса ReflectionExtension для модуля, определяющего класс
- ReflectionClass::getExtensionName — Возвращает имя модуля, определяющее класс
- ReflectionClass::getFileName — Возвращает имя файла, в котором определён класс
- ReflectionClass::getInterfaceNames — Возвращает имена интерфейсов
- ReflectionClass::getInterfaces — Возвращает интерфейсы
- ReflectionClass::getLazyInitializer — Получает ленивый инициализатор
- ReflectionClass::getMethod — Возвращает экземпляр ReflectionMethod для метода класса
- ReflectionClass::getMethods — Возвращает список методов в виде массива
- ReflectionClass::getModifiers — Возвращает информацию о модификаторах класса
- ReflectionClass::getName — Возвращает имя класса
- ReflectionClass::getNamespaceName — Возвращает название пространства имён
- ReflectionClass::getParentClass — Возвращает родительский класс
- ReflectionClass::getProperties — Возвращает свойства
- ReflectionClass::getProperty — Возвращает экземпляр ReflectionProperty для свойства класса
- ReflectionClass::getReflectionConstant — Получает экземпляр класса ReflectionClassConstant для константы класса
- ReflectionClass::getReflectionConstants — Получает константы класса
- ReflectionClass::getShortName — Возвращает короткое имя
- ReflectionClass::getStartLine — Возвращает номер начальной строки
- ReflectionClass::getStaticProperties — Возвращает статические свойства
- ReflectionClass::getStaticPropertyValue — Возвращает значение статического свойства
- ReflectionClass::getTraitAliases — Возвращает массив псевдонимов трейтов
- ReflectionClass::getTraitNames — Возвращает массив имён трейтов, используемых в этом классе
- ReflectionClass::getTraits — Возвращает массив трейтов, внедрённых в класс
- ReflectionClass::hasConstant — Проверяет, определена ли константа
- ReflectionClass::hasMethod — Проверяет, задан ли метод
- ReflectionClass::hasProperty — Проверяет, определено ли свойство
- ReflectionClass::implementsInterface — Проверяет, реализуется ли интерфейс
- ReflectionClass::initializeLazyObject — Принудительно инициализирует ленивый объект
- ReflectionClass::inNamespace — Проверяет, в пространстве ли имён определили класс
- ReflectionClass::isAbstract — Проверяет, абстрактный ли класс
- ReflectionClass::isAnonymous — Проверяет, анонимный ли класс
- ReflectionClass::isCloneable — Проверяет, можно ли клонировать этот класс
- ReflectionClass::isEnum — Проверяет, относится ли класс к перечислениям
- ReflectionClass::isFinal — Проверяет, окончательный ли класс
- ReflectionClass::isInstance — Проверяет, принадлежит ли объект классу
- ReflectionClass::isInstantiable — Проверяет, возможно ли создать экземпляр класса
- ReflectionClass::isInterface — Проверяет, объявили ли класс как интерфейс
- ReflectionClass::isInternal — Проверяет, относится ли класс к внутренним классам модуля или ядра
- ReflectionClass::isIterable — Проверяет, итерируемый ли класс
- ReflectionClass::isIterateable — Псевдоним ReflectionClass::isIterable
- ReflectionClass::isReadOnly — Проверяет, является ли класс доступным только для чтения
- ReflectionClass::isSubclassOf — Проверяет, относится ли класс к подклассу
- ReflectionClass::isTrait — Проверяет, является ли это трейтом
- ReflectionClass::isUninitializedLazyObject — Проверяет, ленив ли и неинициализирован ли объект
- ReflectionClass::isUserDefined — Проверяет, является ли класс пользовательским
- ReflectionClass::markLazyObjectAsInitialized — Помечает ленивый объект как инициализированный без вызова инициализатора или фабрики
- ReflectionClass::newInstance — Создаёт экземпляр класса с переданными аргументами
- ReflectionClass::newInstanceArgs — Создаёт экземпляр класса с переданными параметрами
- ReflectionClass::newInstanceWithoutConstructor — Создаёт новый экземпляр класса без вызова конструктора
- ReflectionClass::newLazyGhost — Создаёт новый экземпляр ленивого призрака
- ReflectionClass::newLazyProxy — Создает новый экземпляр ленивого прокси
- ReflectionClass::resetAsLazyGhost — Сбрасывает и помечает объект ленивым
- ReflectionClass::resetAsLazyProxy — Сбрасывает и помечает объект ленивым
- ReflectionClass::setStaticPropertyValue — Устанавливает значение общедоступного статического свойства
- ReflectionClass::__toString — Возвращает строковое представление объекта класса ReflectionClass
danbettles at yahoo dot co dot uk ¶ 17 years ago
To reflect on a namespaced class in PHP 5.3, you must always specify the fully qualified name of the class - even if you've aliased the containing namespace using a "use" statement.
So instead of:
<?php
use App\Core as Core;
$oReflectionClass = new ReflectionClass('Core\Singleton');
?>
You would type:
<?php
use App\Core as Core;
$oReflectionClass = new ReflectionClass('App\Core\Singleton');
?>
Anonymous ¶ 13 years ago
Reflecting an alias will give you a reflection of the resolved class.
<?php
class X {
}
class_alias('X','Y');
class_alias('Y','Z');
$z = new ReflectionClass('Z');
echo $z->getName(); // X
?>
Anonymous ¶ 14 years ago
Unserialized reflection class cause error.
<?php
/**
* abc
*/
class a{}
$ref = new ReflectionClass('a');
$ref = unserialize(serialize($ref));
var_dump($ref);
var_dump($ref->getDocComment());
// object(ReflectionClass)#2 (1) {
// ["name"]=>
// string(1) "a"
// }
// PHP Fatal error: ReflectionClass::getDocComment(): Internal error: Failed to retrieve the reflection object
?>