# La classe ReflectionProperty

(PHP 5, PHP 7, PHP 8)

## Introduction

La classe ReflectionProperty rapporte des informations sur les propriétés des classes.

## Synopsis de la 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;
/* Propriétés */
public string $name;
public string $class;
/* Méthodes */
public __construct(object|string `$class`, string `$property`)
private __clone(): void
public static export(mixed `$class`, string `$name`, bool `$return` = ?): string
public getAttributes(?string `$name` = `null`, int `$flags` = 0): array
public getDeclaringClass(): ReflectionClass
public getDefaultValue(): mixed
public getDocComment(): string|false
public getHook(PropertyHookType `$type`): ?ReflectionMethod
public getHooks(): array
public getModifiers(): int
public getName(): string
public getRawValue(object `$object`): mixed
public getSettableType(): ?ReflectionType
public getType(): ?ReflectionType
public getValue(?object `$object` = `null`): mixed
public hasDefaultValue(): bool
public hasHook(PropertyHookType `$type`): bool
public hasHooks(): bool
public hasType(): bool
public isAbstract(): bool
public isDefault(): bool
public isDynamic(): bool
public isFinal(): bool
public isInitialized(?object `$object` = `null`): bool
public isLazy(object `$object`): bool
public isPrivate(): bool
public isPrivateSet(): bool
public isPromoted(): bool
public isProtected(): bool
public isProtectedSet(): bool
public isPublic(): bool
public isReadOnly(): bool
public isStatic(): bool
public isVirtual(): bool
public setAccessible(bool `$accessible`): void
public setRawValue(object `$object`, mixed `$value`): void
public setRawValueWithoutLazyInitialization(object `$object`, mixed `$value`): void
public setValue(object `$object`, ?object `$object`, mixed `$value`): void
public skipLazyInitialization(object `$object`): void
public __toString(): string
}

## Propriétés

name

  Nom de la propriété. En lecture seule, lance une ReflectionException lors d'une tentative d'écriture.

class

  Nom de la classe où la propriété a été définie. En lecture seule, lance une ReflectionException lors d'une tentative d'écriture.

## Constantes pré-définies

## Modificateurs de ReflectionProperty

`ReflectionProperty::IS_STATIC` int

  Indique que la propriété est static Antérieur à PHP 7.4.0, la valeur était `1`.

`ReflectionProperty::IS_READONLY` int

  Indique que la propriété est readonly Disponible à partir de PHP 8.1.0.

`ReflectionProperty::IS_PUBLIC` int

  Indique que la propriété est publique. Antérieur à PHP 7.4.0, la valeur était `256`.

`ReflectionProperty::IS_PROTECTED` int

  Indique que la propriété est protégée. Antérieur à PHP 7.4.0, la valeur était `512`.

`ReflectionProperty::IS_PRIVATE` int

  Indique que la propriété est privée. Antérieur à PHP 7.4.0, la valeur était `1024`.

`ReflectionProperty::IS_ABSTRACT` int
  Indique que la propriété est abstraite. Disponible à partir de PHP 8.4.0.
`ReflectionProperty::IS_PROTECTED_SET` int
  Disponible à partir de PHP 8.4.0.
`ReflectionProperty::IS_PRIVATE_SET` int
  Disponible à partir de PHP 8.4.0.
`ReflectionProperty::IS_VIRTUAL` int
  Disponible à partir de PHP 8.4.0.
`ReflectionProperty::IS_FINAL` int
  Indique que la propriété est finale. Disponible à partir de PHP 8.4.0.

> Note:

> La valeur de ces constantes peut changer entre les versions de PHP. Il est recommandé de toujours utiliser les constantes et de ne pas dépendre sur les valeurs directement.

## Historique

Version | Description
--- | ---
8.4.0 | Les constantes de classe sont désormais typées.
8.4.0 | Ajout de `ReflectionProperty::IS_VIRTUAL`, `ReflectionProperty::IS_PRIVATE_SET`, `ReflectionProperty::IS_PROTECTED_SET`, `ReflectionProperty::IS_ABSTRACT`, et `ReflectionProperty::IS_FINAL`.
8.0.0 | ReflectionProperty::export() a été supprimée.

## Sommaire

- ReflectionProperty::__clone — Clonage
- ReflectionProperty::__construct — Construit un nouvel objet ReflectionProperty
- ReflectionProperty::export — Exporte
- ReflectionProperty::getAttributes — Renvoie les attributs
- ReflectionProperty::getDeclaringClass — Récupère la classe déclarante
- ReflectionProperty::getDefaultValue — Renvoie la valeur par défault définie pour une propriété
- ReflectionProperty::getDocComment — Récupère le commentaire de documentation d'une propriété
- ReflectionProperty::getHook — Renvoie un objet de réflexion pour un hook donné
- ReflectionProperty::getHooks — Renvoie un tableau de tous les hooks sur cette propriété
- ReflectionProperty::getModifiers — Récupère les modificateurs de propriété
- ReflectionProperty::getName — Récupère le nom de la propriété
- ReflectionProperty::getRawValue — Renvoie la valeur de la propriété, en contournant un hook get si défini
- ReflectionProperty::getSettableType — Renvoie le type de paramètre d'un hook setter
- ReflectionProperty::getType — Récupère le type d'une propriété
- ReflectionProperty::getValue — Récupère la valeur de la propriété
- ReflectionProperty::hasDefaultValue — Verifie si la propriété a une valeur par défault
- ReflectionProperty::hasHook — Renvoie si la propriété a un hook donné défini
- ReflectionProperty::hasHooks — Renvoie si la propriété a des hooks définis
- ReflectionProperty::hasType — Vérifie si la propriété à un type
- ReflectionProperty::isAbstract — Détermine si une propriété est abstraite
- ReflectionProperty::isDefault — Vérifie si la propriété est celle par défaut
- ReflectionProperty::isDynamic — Vérifie si la propriété est une propriété dynamique
- ReflectionProperty::isFinal — Détermine si la propriété est finale ou non
- ReflectionProperty::isInitialized — Vérifie si une propriété est initialisée
- ReflectionProperty::isLazy — Vérifie si une propriété est paresseuse
- ReflectionProperty::isPrivate — Vérifie si la propriété est privée
- ReflectionProperty::isPrivateSet — Vérifie si la propriété est privée en écriture
- ReflectionProperty::isPromoted — Verifie si la propriété est promue
- ReflectionProperty::isProtected — Vérifie si la propriété est protégée
- ReflectionProperty::isProtectedSet — Vérifie si la propriété est protected en écriture
- ReflectionProperty::isPublic — Vérifie si la propriété est publique
- ReflectionProperty::isReadOnly — Vérifie si la propriété est en lecture seule
- ReflectionProperty::isStatic — Vérifie si la propriété est statique
- ReflectionProperty::isVirtual — Détermine si la propriété est virtuelle
- ReflectionProperty::setAccessible — Définit l'accessibilité d'une propriété
- ReflectionProperty::setRawValue — Définit la valeur d'une propriété, en contournant un hook de définition s'il est défini
- ReflectionProperty::setRawValueWithoutLazyInitialization — Définit la valeur brute d'une propriété sans déclencher l'initialisation paresseuse
- ReflectionProperty::setValue — Définit la valeur de la propriété
- ReflectionProperty::skipLazyInitialization — Marque une propriété comme non paresseuse
- ReflectionProperty::__toString — Récupère une représentation textuelle