PHP,无法正确访问子类的基类

时间:2012-09-12 12:28:31

标签: php oop

基类:

class A {

    public x;
    public y;

    public function __construct {

        $this->x = new X();
        $this->y = new Y();
    }
}

班级X

class X extends A {

    public function __construct {}

    public function job() {

        echo 'x working!';
    }
}

班级Y

class Y extends A {

    public function __construct {}

    public function job() {

        var_dump($this->x);    // NULL, Why???

        $this->x->job();
    }
}

问题:当我从类x->job()内部调用Y时,我无法完全访问X已实例化的对象,{ {1}}显示为var_dump

任何想法都有什么问题?

谢谢! :)

更新

如果我在子类“null方法中使用parent::__construct();,那么它会生成__construct()。这就是我添加空Fatal Error: maximum function nesting level of '100' reached, aborting!方法的原因。再想一想如何解决这个问题?

我在源代码上也有这个:

__construct()

所以,构造函数应该已经运行了,对吧?

2 个答案:

答案 0 :(得分:5)

您必须在子类构造函数中调用parent::__construct(),否则不会调用父构造函数,并且该属性将不会接收其值。

答案 1 :(得分:1)

在这个示例中,你也可以省略子类的构造函数,因为它没有做任何事情,否则使用GolezTrol建议的方法