Verifica los atributos

# ReflectionClassConstant::getAttributes

(PHP 8)

ReflectionClassConstant::getAttributes — Verifica los atributos

### Descripción

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

Verifica todos los atributos declarados en esta constante de clase en forma de un array de objetos ReflectionAttribute.

### Parámetros

`name`
  Filtrar los resultados para incluir únicamente las instancias de ReflectionAttribute para los atributos correspondientes a este nombre de clase.
`flags`
  Flags para determinar cómo filtrar los resultados, si `name` es proporcionado. El valor por omisión es `0` que solo retornará los resultados para los atributos que son de la clase `name`. La única otra opción disponible es utilizar `ReflectionAttribute::IS_INSTANCEOF`, que utilizará `instanceof` para el filtrado.

### Valores devueltos

Un array de atributos, en forma de objetos ReflectionAttribute.

### Ejemplos

Ejemplo #1 Uso simple

    <?php
    #[Attribute]
    class Fruit {
    }

    #[Attribute]
    class Red {
    }

    class Basket {
        #[Fruit]
        #[Red]
        public const APPLE = 'apple';
    }

    $classConstant = new ReflectionClassConstant('Basket', 'APPLE');
    $attributes = $classConstant->getAttributes();
    print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
    ?>

El ejemplo anterior mostrará:

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

Ejemplo #2 Resultados filtrados por nombre de clase

    <?php
    #[Attribute]
    class Fruit {
    }

    #[Attribute]
    class Red {
    }

    class Basket {
        #[Fruit]
        #[Red]
        public const APPLE = 'apple';
    }

    $classConstant = new ReflectionClassConstant('Basket', 'APPLE');
    $attributes = $classConstant->getAttributes('Fruit');
    print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
    ?>

El ejemplo anterior mostrará:

    Array
    (
        [0] => Fruit
    )

Ejemplo #3 Resultados filtrados por nombre de clase, con herencia

    <?php
    interface Color {
    }

    #[Attribute]
    class Fruit {
    }

    #[Attribute]
    class Red implements Color {
    }

    class Basket {
        #[Fruit]
        #[Red]
        public const APPLE = 'apple';
    }

    $classConstant = new ReflectionClassConstant('Basket', 'APPLE');
    $attributes = $classConstant->getAttributes('Color', ReflectionAttribute::IS_INSTANCEOF);
    print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
    ?>

El ejemplo anterior mostrará:

    Array
    (
        [0] => Red
    )

### Ver también

- ReflectionClass::getAttributes() - Recupera los atributos de una clase
- ReflectionFunctionAbstract::getAttributes() - Devuelve los atributos
- ReflectionParameter::getAttributes() - Devuelve los atributos
- ReflectionProperty::getAttributes() - Devuelve los atributos

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