Вызов функции верхнего уровня из унаследованного класса отменяет другой класс, необходимый для функции

У меня есть основной класс, который включает в себя классы компонентов, класс приложения и класс раздела.

Все было хорошо, пока я не попытался устранить рекурсию, которую я нашел в print_r финала $this

Теперь каждый класс простирается от другого. Только компоненты и класс приложения выходят из основного класса. Раздел продолжается от класса приложения. Что на данный момент кажется нормальным, за исключением одной проблемы:

Когда я вызываю функцию верхнего уровня из унаследованного класса, функция освобождает важный класс от родителя верхнего уровня.

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();
}
}

Внутри класса компонента (наследуется от основного) вызывается $this->getItem()

Теперь возвращается

Неустранимая ошибка: вызов неопределенного метода stdClass :: Query ()

Я сделал print_r из $this->Data в начале и в конце getItem() и, конечно же, строки, которые определяют действие класса (Data->table, Data->data) переопределяем $this->Data

Первый print_r (нормально в этот момент)

MySQLClass Object ( ... )

Второй print_r (изменено на значения, установленные в функции)

stdClass Object
(
[table] => items
[data] => Array
(
[id] => 1
)
)

Эта функция работает, как и предполагалось, когда вызывается из основного класса, и всегда работала, как и предполагалось, до расширения классов. Я думаю о том, чтобы просто удерживать CTRL + Z и забыть, что когда-либо заметил. Не исправить то, что не сломал правильно? Тем не менее, я хотел бы точно знать, почему это происходит и как правильно вызывать функции верхнего уровня из дочерних классов.

Спасибо,

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]