# A classe ReflectionProperty

(PHP 5, PHP 7, PHP 8)

## Introdução

A classe ReflectionProperty relata informações sobre as propriedades de uma classe.

## Resumo da classe

class ReflectionProperty implements Reflector {
/* Constantes */
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;
/* Propriedades */
public string $name;
public string $class;
/* Métodos */
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
}

## Propriedades

name

  Nome da propriedade. Somente leitura, lança ReflectionException ao tentar escrever.

class

  Nome da classe onde a propriedade está definida. Somente leitura, lança ReflectionException ao tentar escrever.

## Constantes predefinidas

## Modificadores de ReflectionProperty

`ReflectionProperty::IS_STATIC` int

  Indica propriedades estáticas. Antes do PHP 7.4.0, o valor era `1`.

`ReflectionProperty::IS_READONLY` int

  Indica propriedades somente leitura. Disponível a partir do PHP 8.1.0.

`ReflectionProperty::IS_PUBLIC` int

  Indica propriedades públicas. Antes do PHP 7.4.0, o valor era `256`.

`ReflectionProperty::IS_PROTECTED` int

  Indica propriedades protegidas. Antes do PHP 7.4.0, o valor era `512`.

`ReflectionProperty::IS_PRIVATE` int

  Indica propriedades privadas. Antes do PHP 7.4.0, o valor era `1024`.

`ReflectionProperty::IS_ABSTRACT` int
  Indica que a propriedade é abstrata. Disponível a partir do PHP 8.4.0.
`ReflectionProperty::IS_PROTECTED_SET` int
  Disponível a partir do PHP 8.4.0.
`ReflectionProperty::IS_PRIVATE_SET` int
  Disponível a partir do PHP 8.4.0.
`ReflectionProperty::IS_VIRTUAL` int
  Disponível a partir do PHP 8.4.0.
`ReflectionProperty::IS_FINAL` int
  Indica que a propriedade é final. Disponível a partir do PHP 8.4.0.

> Nota:

> Os valores dessas constantes podem mudar entre as versões do PHP. É recomendável sempre usar as constantes e não depender dos valores diretamente.

## Registro de Alterações

Versão | Descrição
--- | ---
8.4.0 | As constantes de classe agora são tipadas.
8.4.0 | Adicionadas `ReflectionProperty::IS_VIRTUAL`, `ReflectionProperty::IS_PRIVATE_SET`, `ReflectionProperty::IS_PROTECTED_SET`, `ReflectionProperty::IS_ABSTRACT`, e `ReflectionProperty::IS_FINAL`.
8.0.0 | ReflectionProperty::export() foi removido.

## Índice

- ReflectionProperty::__clone — Clone
- ReflectionProperty::__construct — Constrói um objeto ReflectionProperty
- ReflectionProperty::export — Exporta
- ReflectionProperty::getAttributes — Obtém atributos
- ReflectionProperty::getDeclaringClass — Obtém a classe declarada
- ReflectionProperty::getDefaultValue — Retorna o valor padrão declarado para uma propriedade
- ReflectionProperty::getDocComment — Obtém o comentário doc da propriedade
- ReflectionProperty::getHook — Retorna um objeto de reflexão para um gancho especificado
- ReflectionProperty::getHooks — Retorna um array de todos os ganchos nesta propriedade
- ReflectionProperty::getModifiers — Obtém os modificadores de propriedade
- ReflectionProperty::getName — Obtém o nome da propriedade
- ReflectionProperty::getRawValue — Retorna o valor de uma propriedade, ignorando um gancho get se definido
- ReflectionProperty::getSettableType — Retorna o tipo de parâmetro de um gancho set
- ReflectionProperty::getType — Obtém o tipo de uma propriedade
- ReflectionProperty::getValue — Obtém o valor
- ReflectionProperty::hasDefaultValue — Verifica se a propriedade tem um valor padrão declarado
- ReflectionProperty::hasHook — Retorna se a propriedade tem um determinado gancho definido
- ReflectionProperty::hasHooks — Retorna se a propriedade tem algum gancho definido
- ReflectionProperty::hasType — Verifica se a propriedade tem um tipo
- ReflectionProperty::isAbstract — Determina se uma propriedade é abstrata
- ReflectionProperty::isDefault — Verifica se a propriedade é uma propriedade padrão
- ReflectionProperty::isDynamic — Verifica se a propriedade é dinâmica
- ReflectionProperty::isFinal — Determina se esta propriedade é final ou não
- ReflectionProperty::isInitialized — Verifica se uma propriedade foi inicializada
- ReflectionProperty::isLazy — Verifica se uma propriedade é lenta
- ReflectionProperty::isPrivate — Verifica se a propriedade é privada
- ReflectionProperty::isPrivateSet — Verifica se a propriedade é privada para escrita
- ReflectionProperty::isPromoted — Verifica se a propriedade é promovida
- ReflectionProperty::isProtected — Verifica se a propriedade é protegida
- ReflectionProperty::isProtectedSet — Verifica se a propriedade está protegida para escrita
- ReflectionProperty::isPublic — Verifica se a propriedade é pública
- ReflectionProperty::isReadOnly — Verifica se a propriedade é somente leitura
- ReflectionProperty::isStatic — Verifica se a propriedade é estática
- ReflectionProperty::isVirtual — Determina se uma propriedade é virtual
- ReflectionProperty::setAccessible — Define acessibilidade da propriedade
- ReflectionProperty::setRawValue — Define o valor de uma propriedade, ignorando um gancho de configuração se definido
- ReflectionProperty::setRawValueWithoutLazyInitialization — Define o valor bruto da propriedade sem acionar a inicialização lenta
- ReflectionProperty::setValue — Define valor da propriedade
- ReflectionProperty::skipLazyInitialization — Marca a propriedade como não lenta
- ReflectionProperty::__toString — Para string

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