Класс ReflectionProperty
(PHP 5, PHP 7)
Введение
Класс ReflectionProperty сообщает информацию о свойствах класса.
Обзор классов
Свойства
- name
-
Имя свойства. Доступно только для чтения и выбрасывает исключение ReflectionException при попытке записи.
- class
-
Имя класса, в котором данное свойство описано. Доступно только для чтения и выбрасывает исключение ReflectionException при попытке записи.
Предопределенные константы
Модификаторы ReflectionProperty
ReflectionProperty::IS_STATIC
-
Указывает, что свойство является статическим (static).
ReflectionProperty::IS_PUBLIC
-
Указывает, что свойство является общедоступным (public) properties.
ReflectionProperty::IS_PROTECTED
-
Указывает, что свойство является защищенным (protected).
ReflectionProperty::IS_PRIVATE
-
Указывает, что свойство является закрытым (private).
Содержание
- ReflectionProperty::__clone — Копирующий конструктор
- ReflectionProperty::__construct — Конструктор класса ReflectionProperty
- ReflectionProperty::export — Экспорт
- ReflectionProperty::getDeclaringClass — Получение объявляющего класса
- ReflectionProperty::getDocComment — Получение документируемого комментария
- ReflectionProperty::getModifiers — Получение модификаторов
- ReflectionProperty::getName — Получение имени свойства
- ReflectionProperty::getValue — Получение значения
- ReflectionProperty::isDefault — Проверяет, является ли значение свойством по умолчанию
- ReflectionProperty::isPrivate — Проверяет, является ли свойство частным (private)
- ReflectionProperty::isProtected — Проверяет, является ли свойство защищенным (protected)
- ReflectionProperty::isPublic — Проверяет, является ли свойство общедоступным (public)
- ReflectionProperty::isStatic — Проверка, является ли свойство статическим
- ReflectionProperty::setAccessible — Задание доступности свойства
- ReflectionProperty::setValue — Задание значения свойству
- ReflectionProperty::__toString — Преобразование в строку
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Расширения, относящиеся к переменным и типам
- Введение
- Установка и настройка
- Предопределенные константы
- Примеры
- Расширение
- Класс Reflection
- Класс ReflectionClass
- Класс ReflectionZendExtension
- Класс ReflectionExtension
- Класс ReflectionFunction
- Класс ReflectionFunctionAbstract
- Класс ReflectionMethod
- Класс ReflectionObject
- Класс ReflectionParameter
- Класс ReflectionProperty
- ReflectionType
- ReflectionGenerator
- Интерфейс Reflector
- Класс ReflectionException
Коментарии
I think a more accurate explanation is this:
The Reflection classes are designed to reflect upon the source code of an application, not on any runtime information.
I think you misunderstand the ReflectionProperty constructor in your example above. The fact that it accepts an object as argument is just a convenience feature - you are actually inspecting the class of that object, not the object itself, so it's basically equivalent to:
<?php
// works fine
$Reflection = new ReflectionProperty(get_class($a), 'a');
// throws exception
$Reflection = new ReflectionProperty(get_class($a), 'foo');
?>
Getting the class of the object you're passing in is implied, since inspecting a defined property is the purpose of this class.
In your example, $a->foo is a dynamic member - it is not defined as a member of class, so there is no defining class reference, line number, default value, etc. - which means, there is nothing to reflect upon.
Clearly this very useful library could use some real documentation...