【问题标题】:PHP inheritance question, freaking me outPHP继承问题,吓到我了
【发布时间】:2011-09-18 07:21:06
【问题描述】:

有一个问题让我很害怕。父构造函数是否在不被调用的情况下构造自己?

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

我得到了以下信息:

boot.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 构造函数,则不会实例化它。

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

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

【问题讨论】:

    标签: class inheritance constructor construct


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-11
      • 2013-09-10
      相关资源
      最近更新 更多