检测子类是否已调用父类

时间:2016-11-05 06:22:34

标签: php

假设我使用parent::__construct();调用子类的父类。如何检测父类是否已被父类中的子类调用

1 个答案:

答案 0 :(得分:-1)

我不知道我是否理解了您的问题,但我的建议是设置一个静态变量true,在我的情况下$CHILD,在 Child class 然后在父类中使用get_called_class,然后测试上述静态变量。

class Base {

    public function __construct() {
        $child = get_called_class();
        if($child::$CHILD)
        {
            echo "Parent has being called";
        }
    }
}

class Child extends Base {

    public static $CHILD = true;

    public function __constructor()
    {
        parent::__constructor();
    }
}

$child = new Child();

另一种方法是使用debug_backtrace作为@icecub建议