It’s magic: Magische Funktionen in PHP
Geschrieben am 15. Apr 2009 von Cem Derin
Es wirkt auf Laien oftmals wie Zauberei, dass sich mit PHP so schnelle Ergebnisse erzielen lassen. Obwohl dahinter nichts als harte Erfahrungswerte stecken, finden sich in PHP doch einige magische Dinge. Im zweiten Teil meiner kleinen Artikelreihe möchte ich nach den magischen Konstanten auf die magischen Funktionen eingehen.
Magische Funktionen sind in PHP derzeit nur zwei verschiedene Vertreten. Eine dieser beiden ist in einer strengen objektorientierten Codebasis obsolet – und ich trotzdem möchte ich auf beide kurz eingehen. Die magischen Funktionen in PHP zeichnen sich dadurch aus, dass PHP sie für sehr spezielle Zwecke einsetzt. Gemein haben sie die zwei führenden Unterstriche.
__autoload
Autoload wird – sofern deklariert – vom PHP-Kern aufgerufen, bevor er den Fehler wirft, dass eine Klasse nicht gefunden wurde. Als Parameter bekomm die Funktion den Namen der Klasse. Somit ist es möglich, ein letztes mal einzugreifen, bevor das Script aufgrunf eines Fehlers unterbrochen wirde. Genutzt wird diese Funktion – wie der Name schon sagt – zum automatischen Laden von Klassen, damit man nicht alle Klassen die benötigt werden in jeder Datei includen – also laden – muss.
__halt_compiler
Wird von PHP im Grunde gar nicht aufgerufen. Diese magische Funktion kann der Benutzer aufrufen. Sie bewirkt, dass der PHP-Interpreter alles ab dem Aufruf der Funktion ignoriert. Allerdings darf die Funktion nicht innerhalb von anderen Funktionen oder Methoden aufgerufen werden.
#001
Ich dachte immer, da gäbe es noch ein paar mehr, von den magischen Funktionen, z.B. __construct usw.