Récupère les attributs d'une classe

# ReflectionClass::getAttributes

(PHP 8)

ReflectionClass::getAttributes — Récupère les attributs d'une classe

### Description

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

Retourne tous les attributs déclarés sur cette classe sous la forme d'un tableau de 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 la forme d'objets de type ReflectionAttribute.

### Exemples

Exemple #1 Utilisation basique de ReflectionClass::getAttributes()

    <?php
    #[Attribute]
    class Fruit {
    }

    #[Attribute]
    class Rouge {
    }

    #[Fruit]
    #[Rouge]
    class Pomme {
    }

    $class = new ReflectionClass('Pomme');
    $attributes = $class->getAttributes();
    print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
    ?>

L'exemple ci-dessus va afficher :

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

Exemple #2 Filtrer les résultats par un nom de classe

    <?php
    #[Attribute]
    class Fruit {
    }

    #[Attribute]
    class Rouge {
    }

    #[Fruit]
    #[Rouge]
    class Pomme {
    }

    $class = new ReflectionClass('Pomme');
    $attributes = $class->getAttributes('Fruit');
    print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
    ?>

L'exemple ci-dessus va afficher :

    Array
    (
        [0] => Fruit
    )

Exemple #3 Filtrer les résultats par nom de classe, avec héritage

    <?php
    interface Couleur {
    }

    #[Attribute]
    class Fruit {
    }

    #[Attribute]
    class Rouge implements Couleur {
    }

    #[Fruit]
    #[Rouge]
    class Pomme {
    }

    $class = new ReflectionClass('Pomme');
    $attributes = $class->getAttributes(Couleur::class, ReflectionAttribute::IS_INSTANCEOF);
    print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
    ?>

L'exemple ci-dessus va afficher :

    Array
    (
        [0] => Rouge
    )

### Voir aussi

- ReflectionClassConstant::getAttributes() - Récupère les attributs
- ReflectionFunctionAbstract::getAttributes() - Renvoie les attributs
- ReflectionParameter::getAttributes() - Renvoie les attributs
- ReflectionProperty::getAttributes() - Renvoie les attributs

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