如何在php中使用反射作为回调

时间:2015-09-14 20:10:14

标签: php reflection

我有一个班级

   Class Mainclass{}

另一个是

的课程
   Class Childclass extends Mainclass{}

现在我想在Mainclass中编写回调,检查子类是否找到了方法,合并值并返回?

我如何实现反射?

1 个答案:

答案 0 :(得分:0)

一种简单的方法是创建一个包含该方法的接口

interface XYZ
{
    public function myMethod();
}

让你的孩子班级实施它

class Childclass extends Mainclass implements XYZ
{
    public function myMethod()
    {
        //actual implementation
    }
}

之后,您的主类可以轻松检查它是否正在实现该接口:

class Mainclass
{
    public function whatever()
    {
        if ($this instanceof XYZ)
        {
            $this->myMethod();
        }
    }
}

现在,我确信它会起作用,但我认为这是一个糟糕的设计:父类不应该依赖于其子类的实现。但是,由于我不知道你工作的环境,我会把它留在这里并希望它能帮到你。