从继承类调用顶级函数会取消函数

时间:2015-09-15 06:35:08

标签: php oop inheritance optimization multiple-inheritance

我有一个主类,包括组件类,app类和section类。

在我尝试消除我在最终print_r的{​​{1}}中找到的递归之前,一切都很好

现在每个班级都从另一个班级延伸。只有组件和app类从主类扩展。该部分从app类扩展而来。除了一个问题之外,在这一点上看起来很好:

当我从一个继承的类中调用顶级函数时,该函数会从顶级父级中取消一个重要的类。

$this

在组件类(从main继承)内部,调用class Framework { protected $Data; function __construct() { // include all files... $this->Data = new MySQLClass; } function getItem( $item ) { $this->Data->table = 'items'; $this->Data->data = array( 'id' => $item ); $this->Data->Query(); } }

现在返回

  

致命错误:调用未定义的方法stdClass :: Query()

我在$this->getItem()的开头和结尾处print_r $this->Data,确定了定义集体操作的行(getItem()Data->table )正在重新定义Data->data

First print_r (此时正常)

$this->Data

第二次print_r (更改为在功能中设置的值)

MySQLClass Object ( ... )

当从主类调用时,此函数按预期工作,并且在扩展类之前始终按预期工作。我想只是按住CTRL + Z而忘记我曾经注意到。不修复那些没有破坏的东西?我仍然想知道为什么会发生这种情况以及如何从子类中正确调用顶级函数。

谢谢,

0 个答案:

没有答案