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
}