轻松使用PHP属性
#php #attributes

php属性是最后一个PHP 8版本中包含的新功能,使我们可以轻松地将元数据添加到我们的类,方法和属性中。

创建属性很容易,我们只需要创建一个类,定义其属性并将其标记为属性。让我们看看一个示例


    #[\Attribute]
    class IsBackground
    {
        public function __construct(
            public readonly ?int $delay = null
        ){ }
     }

在上面的代码中,我们创建了一个称为 isbackground的属性,该属性容纳一个参数: delays

现在让我们看看如何使用它。想象一下,我们有一个称为操作的类,我们想装饰为“ isbackground ”。


    #[IsBackground]
    class Operation {

        // properties and methods
    }

正如我们所看到的,它已经被简单地使用#[isbackground] 在类的顶部进行。

现在,让我们看看如何读取属性数据:

     $reflectionClass = new \ReflectionClass(new Operation());
     $attributes = $reflectionClass->getAttributes(IsBackground::class);
     $attr = reset($attributes);
     $attrObject = $attr->newInstance();

     echo $attr->delay;

当我们用 iSbackground 属性装饰操作时,我们没有定义延迟。为了设置延迟,我们将更改这样的操作类:

#[IsBackground(delay: 600)]
class Operation {

    // properties and methods
}