【问题标题】:PHP Class linkingPHP 类链接
【发布时间】:2014-06-20 18:09:30
【问题描述】:

我对班级和孩子有疑问。

现在我有这样的(我的核心课程) https://gist.github.com/anonymous/8fb344e9743284a5b12b

注意第 37-41 行。这些类正在扩展核心。 现在注意51-74。

如果我用 $core = new Core; 调用 index.php 中的所有内容,这将完美无缺。 $core->db()->query("blablabla"),但它不起作用,例如,如果我从另一个类调用它,它扩展了这个 Core。 $this->db()->query("blablabla") 根本不起作用。

我做错了什么?

【问题讨论】:

  • 请将相关代码放入问题本身。您不应链接到外部托管的代码。

标签: php class oop inheritance extends


【解决方案1】:

如果您要覆盖子类中的构造函数,则需要从子构造函数中显式调用父构造函数。否则,这些属性将永远不会被初始化。

class Child {
    public function __construct() {
        parent::__construct();
    }
}

【讨论】:

  • 如果我想全局使用这些类,而不从子级重新初始化它们,我该怎么办?
  • 实例属性对于每个实例都是唯一的。例如,如果您希望每个 db 属性引用同一个数据库,那么您将需要依赖注入层或工厂/单例创建设置。
猜你喜欢
  • 1970-01-01
  • 2013-09-24
  • 1970-01-01
  • 2019-02-04
  • 1970-01-01
  • 1970-01-01
  • 2012-03-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多