Gets Attributes

# ReflectionClass::getAttributes

(PHP 8)

ReflectionClass::getAttributes — Gets Attributes

### Beschreibung

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

Returns all attributes declared on this class as an array of ReflectionAttribute.

### Parameter-Liste

`name`

  Die Ergebnisse werden so gefiltert, dass nur ReflectionAttribute-Instanzen für Attribute mit diesem Klassennamen enthalten sind.

`flags`

  Flags, die festlegen, wie die Ergebnisse gefiltert werden sollen, wenn `name` angegeben wird.

  Die Voreinstellung ist `0`, was nur Ergebnisse für die Attribute der Klasse `name` liefert.

  Die einzige andere Möglichkeit ist die Verwendung von `ReflectionAttribute::IS_INSTANCEOF`, wodurch stattdessen `instanceof` zum Filtern verwendet wird.

### Rückgabewerte

Array of attributes, as a ReflectionAttribute object.

### Beispiele

Beispiel #1 Basic usage

`<?php
#[Attribute]
class Fruit {
}
#[Attribute]
class Red {
}
#[Fruit]
#[Red]
class Apple {
}
$class = new ReflectionClass('Apple');
$attributes = $class->getAttributes();
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>`

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

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

Beispiel #2 Filtering results by class name

`<?php
#[Attribute]
class Fruit {
}
#[Attribute]
class Red {
}
#[Fruit]
#[Red]
class Apple {
}
$class = new ReflectionClass('Apple');
$attributes = $class->getAttributes('Fruit');
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>`

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

    Array
    (
        [0] => Fruit
    )

Beispiel #3 Filtering results by class name, with inheritance

`<?php
interface Color {
}
#[Attribute]
class Fruit {
}
#[Attribute]
class Red implements Color {
}
#[Fruit]
#[Red]
class Apple {
}
$class = new ReflectionClass('Apple');
$attributes = $class->getAttributes(Color::class, ReflectionAttribute::IS_INSTANCEOF);
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>`

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

    Array
    (
        [0] => Red
    )

### Siehe auch

- ReflectionClassConstant::getAttributes() - Gets Attributes
- ReflectionFunctionAbstract::getAttributes() - Gets Attributes
- ReflectionParameter::getAttributes() - Gets Attributes
- ReflectionProperty::getAttributes() - Gets Attributes

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