我已经多年来一直坐在这上面,无法找到满足我的方式。
我的问题: 我有一个父类和各种子类。 在父项的构造函数中,创建了一个新对象(以及其他内容)。该对象来自我的日志文件类。它存储在受保护的变量中。
在父类中,日志保存不是问题,一切都按计划完成。
如果我想在子类中使用该对象,我无法使其工作。我无法访问它。 我在父类中尝试了一个函数,以便返回该对象,这也没有用。
我在这里不知所措。
这是父母的构造函数:
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()
谷歌搜索和阅读几个小时后,我仍然没有想出一个正确的方法。
有想法的人吗?
答案 0 :(得分:1)
您应该在每个子构造函数的主体中运行parent::__construct();
,并且日志对象将在所有继承的子类中实例化并可见。