PHP属性构造调用



每次为函数分配特定属性时,我都要执行代码。

例如:

<?php
#[Attribute]
class exampleAttribute
{
public function __construct()
{
echo "exampleAttribute called";
}
}
#[exampleAttribute()]
function exampleFunction()
{
//...
}

但在本例中,echo语句从未被调用。我该怎么做?

属性不会自动实例化,因为当它们"附身"-它们只是该函数定义的一部分,就像类型和参数名称一样。

相反,您必须通过反射来访问它们,正如PHP手册中所讨论的那样。具体来说,您将使用ReflectionFunction对象读取属性,然后使用newInstance方法实例化它。只有当您这样做时,您的echo线路才会运行。

相关内容

  • 没有找到相关文章

最新更新