Hauptmenü

Untermenü

OOP PHP5 - Magische Methoden

1. Einführung

Hierbei handelt es sich um alle Methoden, die von PHP automatisch ausgeführt werden, wenn eine bestimmte Situation eintritt. Dabei gibt es ein paar grundsätzliche Dinge, die berücksichtigt werden müssen.

2. Feinheiten

Grundsätzlich muss man zwischen zwei Funktionsweisen unterscheiden. Da gibt es einmal die Methoden, die einfach nur ihren Job machen. Ist im Moment ein wenig schwer zu verstehen, aber die Informationen dazu folgen auf dem Fuße. Und dann gibt es noch Methoden, die mögliche Fehler abfangen und entsprechend darauf reagieren.

Wichtig

Ohne jetzt schon auf Details einzugehen, möchte ich doch vorab etwas loswerden. Ich selber halte manche magische Methoden für äußerst problematisch, da sie Dinge selbstständig erledigen, für die eigentlich der Entwickler zuständig sein sollte. Sie unterstützen also fehlerhaften und schlampigen Code. Darum sollte man sie meiner Meinung nach eigentlich nicht einsetzen. Um welche Problemfälle es sich dabei handelt, zeige ich euch an den entsprechenden Stellen.

3. Definitionsprobleme

Leider ist sich die PHP-Gemeinde ziemlich uneins, wenn es darum geht, was zu den magischen Methoden gehört. Die einen sagen so, die anderen so und manche gar nichts. Wenn ihr mal im Internet nach obigem Stichwort sucht, so werdet ihr schnell feststellen, dass die Informationen dazu äußerst widersprüchlich sind. Darum werde ich euch zuerst mal die verschiedenen Ansichten zu diesem Thema kundtun, auf dass ihr einen ersten Überblick darüber bekommt.

Konstruktor und Destruktor

Bei diesen beiden Methoden scheiden sich die Geister ganz besonders. Einige zählen sie zu den magischen Methoden, andere nicht. Sebastian Bergmann zum Beispiel benutzt in diesem Zusammenhang der Ausdruck "besondere Methoden" als grundsätzlichen Oberbegriff.

Magische Methoden und Interzeptormethoden

Etliche Leute setzen diese beiden Begriffe gleich, andere dagegen nicht. Und das ist ziemlich verwirrend. Ich orientiere mich daher mal an dem oben schon erwähnten Herrn Bergmann, der nur von Interzeptormethoden spricht. Allerdings taucht der Ausdruck "magische Methoden" bei ihm gar nicht auf. Ist alles recht seltsam.

Welche Methoden gehören dazu?

Auch hier gibt es gehörige Unterschiede. Allerdings wird bei den meisten Seiten nie gesagt, ob es sich um eine vollständige Liste handelt oder ob man aus Faulheit etwas weggelassen hat. Ich gehe praktisch an die Sache heran und stelle euch nur mal die nützlichsten Methoden vor.

4. Meine Vorgehensweise

Ob der großen Sprachverwirrung in der PHP-Gemeinde habe ich mich zu den folgenden Definitionen entschlossen, die sich an der offiziellen PHP-Dokumentation orientiert. Denn die sagt Folgendes.

Danksagung

In diesem Zusammenhang möchte ich mich noch bei meinem Kollegen "onemorenerd" aus meinem Lieblingsforum bedanken, der mir bei den Begrifflichkeiten sehr geholfen hat. Thx.

zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt