ReflectionConstant::getAttributes
アトリビュートを取得する
説明
public array ReflectionConstant::getAttributes(stringnull $name = null, int $flags = 0)
このグローバル定数で宣言されている全てのアトリビュートを
ReflectionAttribute の配列として返します。
パラメータ
-
name
-
指定したクラス名にマッチするアトリビュートの、
ReflectionAttribute
のみを含むようにフィルタします。
-
flags
-
name が指定されていた場合に、
結果をどうフィルタするかを決めるフラグ。
デフォルトは 0 です。
この場合、アトリビュートのクラス名が
name であるものだけを返します。
他の利用可能なオプションは、
ReflectionAttribute::IS_INSTANCEOF です。
この場合、フィルタリングに
instanceof を使います。
戻り値
アトリビュートの配列を、
ReflectionAttribute オブジェクトの配列として返します。
例
例1 基本的な使い方
<?php
#[Attribute]
class Fruit {
}
#[Attribute]
class Red {
}
#[Fruit]
#[Red]
const APPLE = 'apple';
$constant = new ReflectionConstant('APPLE');
$attributes = $constant->getAttributes();
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>
Array
(
[0] => Fruit
[1] => Red
)
参考
- ReflectionClass::getAttributes
- ReflectionClassConstant::getAttributes
- ReflectionFunctionAbstract::getAttributes
- ReflectionProperty::getAttributes