PHP继承问题,吓坏了我

时间:2011-09-18 07:21:07

标签: class inheritance constructor construct

有个问题吓坏了我。父构造函数是否构造自身而不被调用?

因为我看到它正在处理某种情况,而不是我写的脚本。

我得到了以下内容:

boot.php

$this->router = new router($param);

router.php

class router extends routerController
  • 在类路由器上我没有任何__construct。

routercontroller.php

class routerController{
    function __construct($param){
        $this->param = $param;
    }
  • 如果我将__construct添加到类路由器,则不会执行扩展类routerController中的__construct。所以,在这种情况下,构造函数似乎是在没有parent :: _ construct。
  • 的情况下构造的

在同一个脚本中,我进入了routerController类。

$this->newclass = newclass($this->param);

newClass扩展了someClass。由于某种原因,如果我不使用parent :: __ construct($ param)从newClass调用someClass构造函数,则不会实例化它。

我已经花了几个小时检查所有代码,但找不到我做错了什么。为什么在第一种情况下,父构造函数在没有被调用的情况下被实例化,而在第二种情况下不是?

这是一个错误吗?知道我做错了吗?

1 个答案:

答案 0 :(得分:1)

在PHP中,不会隐式调用父构造函数。

来源:http://php.net/manual/en/language.oop5.decon.php