0

有一个让我毛骨悚然的问题。父构造函数是否在不被调用的情况下自行构造?

因为我看到它在某种情况下工作,而不是在我写的脚本上。

我得到以下信息:

引导.php

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

路由器.php

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

路由器控制器.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 构造函数,它不会被实例化。

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

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

4

1 回答 1

1

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

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

于 2011-09-18T07:36:48.803 回答