ReflectionClass::getAttributes

(PHP 8)

ReflectionClass::getAttributesGets Attributes

Beschreibung

publicReflectionClass::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 )
To Top