# Класс ReflectionProperty

(PHP 5, PHP 7, PHP 8)

## Введение

Класс ReflectionProperty сообщает информацию о свойствах класса.

## Обзор класса

class ReflectionProperty implements Reflector {
/* Константы */
public const int IS_STATIC;
public const int IS_READONLY;
public const int IS_PUBLIC;
public const int IS_PROTECTED;
public const int IS_PRIVATE;
public const int IS_ABSTRACT;
public const int IS_PROTECTED_SET;
public const int IS_PRIVATE_SET;
public const int IS_VIRTUAL;
public const int IS_FINAL;
/* Свойства */
public string $name;
public string $class;
/* Методы */
public function __construct(object|string `$class`, string `$property`)
private function __clone(): void
public static function export(mixed `$class`, string `$name`, bool `$return` = ?): string
public function getAttributes(?string `$name` = `null`, int `$flags` = 0): array
public function getDeclaringClass(): ReflectionClass
public function getDefaultValue(): mixed
public function getDocComment(): string|false
public function getHook(PropertyHookType `$type`): ?ReflectionMethod
public function getHooks(): array
public function getModifiers(): int
public function getName(): string
public function getRawValue(object `$object`): mixed
public function getSettableType(): ?ReflectionType
public function getType(): ?ReflectionType
public function getValue(?object `$object` = `null`): mixed
public function hasDefaultValue(): bool
public function hasHook(PropertyHookType `$type`): bool
public function hasHooks(): bool
public function hasType(): bool
public function isAbstract(): bool
public function isDefault(): bool
public function isDynamic(): bool
public function isFinal(): bool
public function isInitialized(?object `$object` = `null`): bool
public function isLazy(object `$object`): bool
public function isPrivate(): bool
public function isPrivateSet(): bool
public function isPromoted(): bool
public function isProtected(): bool
public function isProtectedSet(): bool
public function isPublic(): bool
public function isReadOnly(): bool
public function isStatic(): bool
public function isVirtual(): bool
#[\Deprecated]
public function setAccessible(bool `$accessible`): void
public function setRawValue(object `$object`, mixed `$value`): void
public function setRawValueWithoutLazyInitialization(object `$object`, mixed `$value`): void
public function setValue(?object `$object`, mixed `$value`): void
public function skipLazyInitialization(object `$object`): void
public function __toString(): string
}

## Свойства

name

  Имя свойства. Доступно только для чтения и выбрасывает исключение ReflectionException при попытке записи.

class

  Имя класса, в котором данное свойство описано. Доступно только для чтения и выбрасывает исключение ReflectionException при попытке записи.

## Предопределённые константы

## Модификаторы ReflectionProperty

`ReflectionProperty::IS_STATIC` int

  Указывает, что свойство является статическим. До PHP 7.4.0, значение было `1`.

`ReflectionProperty::IS_READONLY` int

  Указывает, что свойство является доступным только для чтения. Доступно, начиная с PHP 8.1.0.

`ReflectionProperty::IS_PUBLIC` int

  Указывает, что свойство является общедоступным. До PHP 7.4.0, значение было `256`.

`ReflectionProperty::IS_PROTECTED` int

  Указывает, что свойство является защищённым. До PHP 7.4.0, значение было `512`.

`ReflectionProperty::IS_PRIVATE` int

  Указывает, что свойство является закрытым. До PHP 7.4.0, значение было `1024`.

`ReflectionProperty::IS_ABSTRACT` int
  Указывает, что свойство является абстрактным. Константа доступна с PHP 8.4.0.
`ReflectionProperty::IS_PROTECTED_SET` int
  Константа доступна с PHP 8.4.0.
`ReflectionProperty::IS_PRIVATE_SET` int
  Константа доступна с PHP 8.4.0.
`ReflectionProperty::IS_VIRTUAL` int
  Константа доступна с PHP 8.4.0.
`ReflectionProperty::IS_FINAL` int
  Указывает, что свойство является окончательным. Константа доступна с PHP 8.4.0.

> Замечание:

> Значения этих констант могут изменяться от версии к версии PHP. Рекомендуется всегда использовать константы и не полагаться напрямую на значения.

## Список изменений

Версия | Описание
--- | ---
8.4.0 | Константы класса теперь типизированы.
8.4.0 | Добавлены константы `ReflectionProperty::IS_VIRTUAL`, `ReflectionProperty::IS_PRIVATE_SET`, `ReflectionProperty::IS_PROTECTED_SET`, `ReflectionProperty::IS_ABSTRACT` и `ReflectionProperty::IS_FINAL`.
8.0.0 | Метод ReflectionProperty::export() был удалён.

## Содержание

- ReflectionProperty::__clone — Клонирует
- ReflectionProperty::__construct — Создаёт объект класса ReflectionProperty
- ReflectionProperty::export — Экспортирует
- ReflectionProperty::getAttributes — Получает атрибуты
- ReflectionProperty::getDeclaringClass — Получает класс, в котором объявили свойство
- ReflectionProperty::getDefaultValue — Возвращает значение по умолчанию, которое объявили для свойства
- ReflectionProperty::getDocComment — Получает doc-комментарий свойства
- ReflectionProperty::getHook — Возвращает объект рефлексии хука
- ReflectionProperty::getHooks — Возвращает массив хуков свойства
- ReflectionProperty::getModifiers — Получает модификаторы свойства
- ReflectionProperty::getName — Получает имя свойства
- ReflectionProperty::getRawValue — Возвращает значение свойства в обход хука get, если такой определили
- ReflectionProperty::getSettableType — Возвращает тип параметра хука set
- ReflectionProperty::getType — Получает тип свойства
- ReflectionProperty::getValue — Получает значение
- ReflectionProperty::hasDefaultValue — Проверяет, задано ли для свойства значение по умолчанию
- ReflectionProperty::hasHook — Возвращает информацию о том, определили ли для свойства хук
- ReflectionProperty::hasHooks — Возвращает информацию о том, определили ли для свойства хотя бы один хук
- ReflectionProperty::hasType — Проверяет, есть ли у свойства тип
- ReflectionProperty::isAbstract — Определяет, абстрактно ли свойство
- ReflectionProperty::isDefault — Проверяет, является ли значение свойством по умолчанию
- ReflectionProperty::isDynamic — Проверяет, является ли свойство динамическим
- ReflectionProperty::isFinal — Определяет, окончательно ли свойство
- ReflectionProperty::isInitialized — Проверяет, инициализировали ли свойство
- ReflectionProperty::isLazy — Проверяет, лениво ли свойство
- ReflectionProperty::isPrivate — Проверяет, является ли свойство закрытым
- ReflectionProperty::isPrivateSet — Проверяет закрытость свойства для записи
- ReflectionProperty::isPromoted — Проверяет, определено ли свойство в конструкторе
- ReflectionProperty::isProtected — Проверяет, является ли свойство защищённым
- ReflectionProperty::isProtectedSet — Проверяет защищённость свойства для записи
- ReflectionProperty::isPublic — Проверяет, общедоступно ли свойство
- ReflectionProperty::isReadOnly — Проверяет, является ли свойство readonly-свойством
- ReflectionProperty::isStatic — Проверяет, определили ли свойство статическим
- ReflectionProperty::isVirtual — Определяет, виртуально ли свойство
- ReflectionProperty::setAccessible — Устанавливает доступность свойства
- ReflectionProperty::setRawValue — Устанавливает значение свойству в обход хука set, если такой хук определили
- ReflectionProperty::setRawValueWithoutLazyInitialization — Устанавливает необработанное значение свойства без запуска ленивой инициализации
- ReflectionProperty::setValue — Устанавливает значение свойству
- ReflectionProperty::skipLazyInitialization — Помечает свойство как неленивое
- ReflectionProperty::__toString — Преобразовывает экземпляр свойства в строку

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open