0

我已经坐了很多年了,无法找到让我满意的方法。

我的问题:我有一个父类和各种子类。在父级的构造函数中,创建了一个新对象(除其他外)。这个对象来自我的日志文件类。它存储在受保护的变量中。

在父类中,日志保存不是问题,一切都按计划进行。

如果我想在子类中使用该对象,我无法让它工作。我只是无法访问它。我在父类中尝试了一个函数以返回对象,这也不起作用。

我在这里不知所措。

这是父级的构造函数:

function __construct() {
...   
 $this->reg_log_file = new log_file(bef_registration::REG_LOG_NAME, bef_registration::REG_LOG_KEEPING);
...
}

为了创建新条目,在父类中,以下内容就足够了:

$this->reg_log_file->entry('start log');

在子类中,这将导致错误:

在非对象上调用成员函数 entry()

在谷歌搜索和阅读几个小时之后,我仍然没有想出一个正确的方法来做到这一点。

有人有想法吗?

4

1 回答 1

1

您应该parent::__construct();在每个子构造函数的主体中运行,并且日志对象将被实例化并在所有继承的子类中可见。

于 2013-04-14T15:50:15.800 回答