OOP

Aus php bar
Wechseln zu: Navigation, Suche

Objektorientierte Programmierung (Object Oriented Programming)

siehe auch Wikipedia.de: Objektorientierte Programmierung

Die grundlegende Syntax der OOP wurde in sehr eingeschränkter Form in PHP 3 eingeführt. Mit PHP 4 waren die Möglichkeiten für OOP noch sehr begrenzt, erst mit PHP 5 wurde das Objekt-Modell wesentlich erweitert und, für einige Experten, erst wirklich brauchbar.

Besonderheiten des OOP in PHP

ToDo: Dieser Artikel muss an dieser Stelle mit Folgendem ergänzt werden:Besonderheiten und Features der Objektorientierten Programmierung in PHP (Vergleich zu anderen Programmiersprachen?)

Der Zugriff auf Eigenschaften und Methoden erfolgt nicht wie etwa in Java über den Punktoperator (.), sondern über den Pfeiloperator (->) und auf statische Objekte mit doppeltem Doppelpunkt (::) Scope Resolution Operator.

Unter PHP stehen zur direkten Verwendung sehr viele und schnelle Stringfunktionen zu Verfügung.

Wie in OOP-Sprachen gebräuchlich gibt es auch einen Zeiger $this (Selbstreferenz) auf das aktuelle Objekt oder das auf das aktuelle Exemplar (instance) der Klasse zeigt.

Polymorphismus, Vielgestaltigkeit durch virtuelle Methoden oder durch das Überladen von Methoden wird oft realisiert durch:

  • Übergabe eines assoziativen Arrays an eine Funktion und entsprechend ihres Types reagieren,
  • Variablen mit einem Defaultwert im Funktionskopf zu versehen (ähnl. statischen, frühen Bindung) oder
  • mit func_get_args übergebene Argumente in ein Array schreiben und eine Art späte, dynamische Bindung
  • unter Verwendung magischer Methoden, Methodenaufrufe und Zugriffe auf Member mit __call(), __get(), __set() Methoden überladen und seit PHP 5 __isset(), __unset() zum Überladen von isset() und unset(), sowie (string) überladbar durch __toString().

Wie in anderen automatisch typisierten Sprachen ist es möglich typsicher zu prüfen, z.B: mit === auf 0 zu prüfen, da sonst (über == ) auch ein boolean in Frage kommen würden.


In PHP 4 waren alle Methoden public, s. Geltungsbereich(scope). Seit PHP 5 kann vor jeder Klasse und Funktion ein Zugriffsspezifierer von Variablen und Methoden verwendet werden, s. Sichtbarkeit. Im Gegensatz zu C++ (private ohne Angabe) wird standardmässig public intepretiert und es wird auch wie in Java keine Mehrfachvererbung (das Ableiten mehrerer Basisklassen) unterstützt. Das Schlüsselwort final zur Deklarierung von Members und Methoden um nicht von Subklassen überschrieben zu werden, kann auch Klassen vorangestellt werden, dadurch ist eine finale Klasse nicht veerbbar und alle darin enthaltenen Methoden sind folglicherweise final.

Seit PHP 5 ist ein Vergleich auf __FUNCTION__ (und Klasse) casesensitiv, Funktionen werden aber nicht casesensitiv behandelt. Variablen sind casesensitiv. Es besteht die Möglichkeit des Type Hinting, in Form von Klassenanagabe vor dem Parameter (nur Objekte) in Methoden oder Funktionen.


Eine Besonderheit der OOP mit PHP sind die magischen Methoden.

  • __construct() - Konstruktorfunktion (in PHP 4 gab es den Konstruktor als function mit Klassenname)
  • __destruct() - Destruktor wird z.B: nach Abarbeitung des Skriptes ausgeführt, expliziter Aufruf möglich.
  • __set() - Setter, praktisch anwendbar in Klassen mit $this
  • __get() - Getter, praktisch anwendbar in Klassen mit return
  • __call() - Interceptor zur Auswertung, Behandlung von Aufrufen nicht deklarierter Methoden und Funktionen.
  • __toString() - Hilfefunktion zur Konvertierung
  • __autoload() - Aufruf bei Erzeugung einer neuen Instanz

Schlüsselworte/Funktionen für OOP

Meine Werkzeuge