Renvoie les attributs

# ReflectionProperty::getAttributes

(PHP 8)

ReflectionProperty::getAttributes — Renvoie les attributs

### Description

public function ReflectionProperty::getAttributes(?string `$name` = `null`, int `$flags` = 0): array

Renvoie tous les attributs déclarés sur cette propriété de classe sous forme d'un tableau d'objet ReflectionAttribute.

### Liste de paramètres

`name`
  Filtrer les résultats pour inclure uniquement les instances de ReflectionAttribute pour les attributs correspondant à ce nom de classe.
`flags`
  Flags pour déterminer comment filtrer les résultats, si `name` est fourni. La valeur par défaut est `0` qui ne renverra que les résultats pour les attributs qui sont de la classe `name`. La seule autre option disponible est d'utiliser `ReflectionAttribute::IS_INSTANCEOF`, qui utilisera plutôt `instanceof` pour le filtrage.

### Valeurs de retour

Un tableau d'attributs, sous forme d'objets ReflectionAttribute.

### Exemples

Exemple #1 Usage basique

    <?php
    #[Attribute]
    class Fruit {
    }

    #[Attribute]
    class Red {
    }

    class Basket {
        #[Fruit]
        #[Red]
        public string $apple = 'apple';
    }

    $property = new ReflectionProperty('Basket', 'apple');
    $attributes = $property->getAttributes();
    print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
    ?>

L'exemple ci-dessus va afficher :

    Array
    (
        [0] => Fruit
        [1] => Red
    )

Exemple #2 Résultats filtrés par nom de classe

    <?php
    #[Attribute]
    class Fruit {
    }

    #[Attribute]
    class Red {
    }

    class Basket {
        #[Fruit]
        #[Red]
        public string $apple = 'apple';
    }

    $property = new ReflectionProperty('Basket', 'apple');
    $attributes = $property->getAttributes('Fruit');
    print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
    ?>

L'exemple ci-dessus va afficher :

    Array
    (
        [0] => Fruit
    )

Exemple #3 Résultats filtrés par nom de classe, avec héritage

    <?php
    interface Color {
    }

    #[Attribute]
    class Fruit {
    }

    #[Attribute]
    class Red implements Color {
    }

    class Basket {
        #[Fruit]
        #[Red]
        public string $apple = 'apple';
    }

    $property = new ReflectionProperty('Basket', 'apple');
    $attributes = $property->getAttributes('Color', ReflectionAttribute::IS_INSTANCEOF);
    print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
    ?>

L'exemple ci-dessus va afficher :

    Array
    (
        [0] => Red
    )

### Voir aussi

- ReflectionClass::getAttributes() - Récupère les attributs d'une classe
- ReflectionClassConstant::getAttributes() - Récupère les attributs
- ReflectionFunctionAbstract::getAttributes() - Renvoie les attributs
- ReflectionParameter::getAttributes() - Renvoie les attributs

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