Späte statische Bindung

Mit ,,später statischer Bindung“ wird ein Konzept bezeichnet, dass eine statische Methode erst zur Ausführungszeit an seine Klasse bindet und nicht vorher. Es ist im folgenden Programmbeispiel zweier Klassen in einer Vererbungshierarchie veranschaulicht:

In der letzten Zeile wird die statische Funktion boo() in der ChildClass aufgerufen. Diese definiert in der Klasse ParentClass einen Aufruf der weiteren statischen Funktion foo(). Wird nun bei dem Aufruf ohne späte statische Bindung gearbeitet, indem einfach nur self:: genutzt wird, so greift sich der Aufruf die Deklaration der Funktion, die direkt für ihn zugänglich ist. Ein Compiler könnte die statische Funktion foo() auch direkt in die statische Funktion boo() einbetten. Es wird in ParentClass ausgegeben.

Wird nun stattdessen static:: genutzt, so findet ein spätes statisches Binden statt. PHP wird durch die Klassenhierarchie nach oben hin nach der Funktion foo() suchen und findet zuerst die Funktion in der Klasse ChildClass. Deshalb ist die Ausgabe jetzt auch in ChildClass.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert