# La clase ReflectionProperty

(PHP 5, PHP 7, PHP 8)

## Introducción

La clase ReflectionProperty proporciona información sobre las propiedades de las clases.

## Sinopsis de la Clase

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;
/* Propiedades */
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`, ?object `$object`, mixed `$value`): void
public function skipLazyInitialization(object `$object`): void
public function __toString(): string
}

## Propiedades

name

  Nombre de la propiedad. Solo lectura, lanza una ReflectionException al intentar escribir.

class

  Nombre de la clase donde se definió la propiedad. Solo lectura, lanza una ReflectionException al intentar escribir.

## Constantes predefinidas

## Modificadores de ReflectionProperty

`ReflectionProperty::IS_STATIC` int

  Indica que la propiedad es static. Anterior a PHP 7.4.0, el valor era `1`.

`ReflectionProperty::IS_READONLY` int

  Indica que la propiedad es readonly. Disponible a partir de PHP 8.1.0.

`ReflectionProperty::IS_PUBLIC` int

  Indica que la propiedad es pública. Anterior a PHP 7.4.0, el valor era `256`.

`ReflectionProperty::IS_PROTECTED` int

  Indica que la propiedad es protegida. Anterior a PHP 7.4.0, el valor era `512`.

`ReflectionProperty::IS_PRIVATE` int

  Indica que la propiedad es privada. Anterior a PHP 7.4.0, el valor era `1024`.

`ReflectionProperty::IS_ABSTRACT` int
  Indica que la propiedad es abstracta. Disponible a partir de PHP 8.4.0.
`ReflectionProperty::IS_PROTECTED_SET` int
  Disponible a partir de PHP 8.4.0.
`ReflectionProperty::IS_PRIVATE_SET` int
  Disponible a partir de PHP 8.4.0.
`ReflectionProperty::IS_VIRTUAL` int
  Disponible a partir de PHP 8.4.0.
`ReflectionProperty::IS_FINAL` int
  Indica que la propiedad es final. Disponible a partir de PHP 8.4.0.

> Nota:

> El valor de estas constantes puede cambiar entre versiones de PHP. Se recomienda siempre utilizar las constantes y no depender de los valores directamente.

## Historial de cambios

Versión | Descripción
--- | ---
8.4.0 | Las constantes de clase ahora están tipadas.
8.4.0 | Se añadieron `ReflectionProperty::IS_VIRTUAL`, `ReflectionProperty::IS_PRIVATE_SET`, `ReflectionProperty::IS_PROTECTED_SET`, `ReflectionProperty::IS_ABSTRACT`, y `ReflectionProperty::IS_FINAL`.
8.0.0 | ReflectionProperty::export() ha sido eliminada.

## Tabla de contenidos

- ReflectionProperty::__clone — Clonación
- ReflectionProperty::__construct — Construye un nuevo objeto ReflectionProperty
- ReflectionProperty::export — Exporta
- ReflectionProperty::getAttributes — Devuelve los atributos
- ReflectionProperty::getDeclaringClass — Obtiene la clase declarante
- ReflectionProperty::getDefaultValue — Devuelve el valor por defecto definido para una propiedad
- ReflectionProperty::getDocComment — Recupera el comentario de documentación de una propiedad
- ReflectionProperty::getHook — Devuelve un objeto de reflexión para un hook dado
- ReflectionProperty::getHooks — Devuelve un array de todos los hooks en esta propiedad
- ReflectionProperty::getModifiers — Obtiene los modificadores de propiedad
- ReflectionProperty::getName — Obtiene el nombre de la propiedad
- ReflectionProperty::getRawValue — Devuelve el valor de la propiedad, evitando un hook get si está definido
- ReflectionProperty::getSettableType — Devuelve el tipo de argumento de un hook setter
- ReflectionProperty::getType — Obtiene el tipo de una propiedad
- ReflectionProperty::getValue — Obtiene el valor de la propiedad
- ReflectionProperty::hasDefaultValue — Verifica si la propiedad tiene un valor por omisión
- ReflectionProperty::hasHook — Indica si la propiedad tiene un hook dado definido
- ReflectionProperty::hasHooks — Indica si la propiedad tiene hooks definidos
- ReflectionProperty::hasType — Verifica si la propiedad tiene un tipo
- ReflectionProperty::isAbstract — Determina si una propiedad es abstracta
- ReflectionProperty::isDefault — Verifica si la propiedad es la predeterminada
- ReflectionProperty::isDynamic — Verifica si la propiedad es una propiedad dinámica
- ReflectionProperty::isFinal — Determina si la propiedad es final o no
- ReflectionProperty::isInitialized — Verifica si una propiedad está inicializada
- ReflectionProperty::isLazy — Verifica si una propiedad es perezosa
- ReflectionProperty::isPrivate — Verifica si la propiedad es privada
- ReflectionProperty::isPrivateSet — Verifica si la propiedad es privada en escritura
- ReflectionProperty::isPromoted — Verifica si la propiedad está promovida
- ReflectionProperty::isProtected — Verifica si la propiedad es protegida
- ReflectionProperty::isProtectedSet — Verifica si la propiedad es protected en escritura
- ReflectionProperty::isPublic — Verifica si la propiedad es pública
- ReflectionProperty::isReadOnly — Verifica si la propiedad es de solo lectura
- ReflectionProperty::isStatic — Verifica si la propiedad es estática
- ReflectionProperty::isVirtual — Determina si la propiedad es virtual
- ReflectionProperty::setAccessible — Define la accesibilidad de una propiedad
- ReflectionProperty::setRawValue — Define la valor de una propiedad, omitiendo un hook de definición si está definido
- ReflectionProperty::setRawValueWithoutLazyInitialization — Define el valor bruto de una propiedad sin activar la inicialización perezosa
- ReflectionProperty::setValue — Define el valor de la propiedad
- ReflectionProperty::skipLazyInitialization — Marca una propiedad como no perezosa
- ReflectionProperty::__toString — Obtiene una representación textual

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