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.

Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

Schließen