English | 简体中文 | 繁體中文
查询

ReflectionFunctionAbstract::getAttributes()函数—用法及示例

「 获取与函数或方法关联的属性列表 」


函数名称:ReflectionFunctionAbstract::getAttributes()

适用版本:PHP 8.0.0 及更高版本

函数说明:该函数用于获取与函数或方法关联的属性列表。

语法:public ReflectionAttribute[] ReflectionFunctionAbstract::getAttributes( string $name = null , int $flags = 0 )

参数:

  • $name(可选):属性名称,可以是完全限定名称或简单名称。
  • $flags(可选):用于过滤属性的标志,可以是 ReflectionAttribute::IS_INSTANCEOF 或 ReflectionAttribute::IS_IMPLICIT。

返回值:返回一个 ReflectionAttribute 对象数组,每个对象表示一个属性。

示例:

<?php

#[Attribute]
class CustomAttribute {
    public function __construct($value) {
        $this->value = $value;
    }
}

#[CustomAttribute('example')]
function myFunction() {
    // ...
}

$reflectionFunction = new ReflectionFunction('myFunction');
$attributes = $reflectionFunction->getAttributes();

foreach ($attributes as $attribute) {
    $attributeName = $attribute->getName();
    $attributeArguments = $attribute->getArguments();

    echo "Attribute: $attributeName\n";
    echo "Arguments: ";
    print_r($attributeArguments);
    echo "\n";
}

?>

输出结果:

Attribute: CustomAttribute
Arguments: Array
(
    [0] => example
)

以上示例中,我们定义了一个名为 CustomAttribute 的自定义属性,并将其应用到 myFunction 函数上。然后,使用 ReflectionFunction 类获取函数的属性,并遍历输出属性名称和参数。

注意:ReflectionFunctionAbstract 是一个抽象类,不能直接实例化,需要使用 ReflectionFunction 或 ReflectionMethod 类来实例化该类。

补充纠错
热门PHP函数
分享链接