У меня есть класс PHP с рисунком ClassA, который расширяется многими другими классами рисования, например ClassB.
Мне нужно, чтобы унаследованные классы запускали родительские классы Draw(). Однако в моей конкретной ситуации я не хочу напрямую обращаться к такому методу (например: parent::Draw()
). Мне нужна третья функция (например, parent::InvokeDraw()
), чтобы вызвать мой метод рисования из родительского контекста.
Вот какой код для иллюстрации:
class ClassA
{
function Draw()
{
/* Drawing code ... */
}
function InvokeDraw()
{
$this->Draw();
}
}
class ClassB extends ClassA
{
function Draw()
{
parent::InvokeDraw();
/* Drawing code ... */
}
}
Проблема, с которой я сталкиваюсь, заключается в том, что InvokeDraw() не будет вызывать родительский метод Draw(), а расширенный класс Draw (расширенный класс) ), что вызывает бесконечный цикл.
Несмотря на то, что проблема довольно логична, мне сложно найти решение этой проблемы. Как выполнить эту задачу?
Желаемый эффект
Бесконечная задача цикла