Greifen Sie in PHP über den Kontext des übergeordneten Elements auf die überschriebene Methode des übergeordneten Elements zu

Ich habe eine Zeichen-PHP-Klasse namensKlasse a das wird durch viele andere Zeichenklassen erweitert,Klasse b zum Beispiel.

Ich brauche die geerbten Klassen, um die Elternklassen auszulösen.Zeichnen() Methode. In meiner speziellen Situation möchte ich eine solche Methode jedoch nicht direkt aufrufen (z. B .:parent::Draw()). Ich hätte gerne eine dritte Funktion (z. B .:parent::InvokeDraw()), um meine Zeichenmethode aus dem Kontext des übergeordneten Elements aufzurufen.

Hier ist ein Code zur Veranschaulichung:

class ClassA
{
    function Draw()
    {

        /* Drawing code ... */

    }

    function InvokeDraw()
    {
        $this->Draw();
    }
}

class ClassB extends ClassA
{
    function Draw()
    {
        parent::InvokeDraw();

        /* Drawing code ... */

    }
}

Das Problem, mit dem ich konfrontiert bin, ist dasInvokeDraw () ruft die Eltern nicht anZeichnen() Methode, sondern die erweiterte Klasse 'eigeneZeichnen() Methode, wodurch eine Endlosschleife verursacht.

Obwohl das Problem ziemlich logisch ist, fällt es mir schwer, einen Workaround dafür zu finden. Wie erledige ich diese Aufgabe?

Gewünschter Effekt

Endlosschleifenproblem

Antworten auf die Frage(4)

Ihre Antwort auf die Frage