Was ist ein Objekt in PHP?

PHP per OOP: Was ist ein Objekt in PHP?

Was ist ein Objekt PHP?

Objekte sind der Schlüssel zum Verständnis der objektorientierten Programmierung in PHP. Aber was ist ein Objekt in PHP eigentlich? Fangen wir zunächst mit einem einfach Beispiel an. Schau dich einmal um, und du wirst jede Menge Beispiele für Objekte in der realen Welt finden: deinen Schreibtisch, deinen Fernseher, dein Fahrrad, deinen Hund, usw.

Die Objekte der realen Welt haben allesamt zwei Eigenschaften gemeinsam: Sie haben alle einen Zustand und sie legen alle bestimmte Verhaltensweisen an den Tag. Hunde haben einen Zustand (z. B. Name, Farbe, Rasse, hungrig) und ein Verhalten (z. B. Bellen, Apportieren, Schwanzwedeln). Auch Fahrräder haben einen Zustand (z. B. aktuell eingelegter Gang, aktuelle Trittfrequenz, aktuelle Geschwindigkeit) und ein Verhalten (z. B. Gangwechsel, Änderung der Trittfrequenz, Bremsen). Zustände und Verhaltensweisen von Objekten aus der realen Welt zu betrachten, ist eine gute Möglichkeit, um in die objektorientierte Programmierung einzusteigen.

Nimm dir jetzt eine Minute Zeit, um die realen Objekte in deiner unmittelbaren Umgebung zu beobachten. Stelle dir für jedes Objekt, das du siehst, die folgenden zwei Fragen: „Welche möglichen Zustände kann dieses Objekt annehmen?“ und „Welches mögliche Verhalten kann dieses Objekt an den Tag legen?“. Schreibe deine Beobachtungen auf. Dabei wirst du schnell feststellen, dass Objekte in der realen Welt unterschiedlich komplex sind. Deine Schreibtischlampe hat vielleicht nur zwei mögliche Zustände (an und aus) und zwei mögliche Verhaltensweisen (einschalten, ausschalten), dein Radio hingegen hat vermutlich viele weitere Zustände (an, aus, aktuelle Lautstärke, aktueller Sender usw.) und Verhaltensweisen (einschalten, ausschalten, Lautstärke erhöhen, Lautstärke verringern, Sender suchen usw.). Du wirst auch feststellen, dass einige Objekte wiederum andere Objekte enthalten. Diese Beobachtungen aus der realen Welt lassen sich auf die Welt der objektorientierten Programmierung übertragen.

Objekte in der PHP OOP Programmierung

Software-Objekte ähneln konzeptionell den Objekten der realen Welt: Auch sie haben einen Zustand und ein damit verbundenes Verhalten. Ein Objekt speichert seinen Zustand in Variablen (man nennt diese in einigen Programmiersprachen auch „Felder“) und offenbart sein Verhalten durch Methoden (bzw. Funktionen). Methoden bearbeiten den internen Zustand eines Objekts und dienen als primärer Mechanismus für die Kommunikation von Objekt zu Objekt. Das Verstecken des internen Zustands und das Erfordernis, alle Interaktionen über die Methoden eines Objekts abzuwickeln, wird als Datenkapselung bezeichnet – ein Grundprinzip der objektorientierten Programmierung.

Nehmen wir zum Beispiel ein Fahrrad:

Durch die Zuweisung eines Zustands (aktuelle Geschwindigkeit, aktuelle Trittfrequenz und aktueller Gang) und die Bereitstellung von Methoden zur Änderung dieses Zustands behält das Objekt die Kontrolle darüber, wie die Außenwelt es nutzen darf. Wenn das Fahrrad zum Beispiel nur 6 Gänge hat, könnte eine Methode zum Wechseln der Gänge jeden Wert ablehnen, der kleiner als 1 oder größer als 6 ist.

Vorteile der OOP in PHP

Die Bündelung von Code in einzelnen Softwareobjekten bringt eine Reihe von Vorteilen mit sich, unter anderem:

  • Modularität: Der Quellcode für ein Objekt kann unabhängig vom Quellcode für andere Objekte geschrieben und gepflegt werden. Einmal erstellt, kann ein Objekt innerhalb des Systems leicht weitergegeben werden.

  • Verbergen von Informationen: Da nur mit den Methoden eines Objekts interagiert wird, bleiben die Details seiner internen Implementierung für die Außenwelt verborgen.

  • Wiederverwendung von Code: Wenn ein Objekt bereits existiert (vielleicht von einem anderen Softwareentwickler geschrieben), kannst du dieses Objekt in deinem Programm verwenden. Dies ermöglicht es Spezialisten, komplexe, aufgabenspezifische Objekte zu implementieren/prüfen/debuggen, die du dann in deinem eigenen Code ausführen kannst.

  • Integrierbarkeit und einfache Fehlersuche: Wenn sich ein bestimmtes Objekt als problematisch erweist, kannst du es einfach aus deiner Anwendung entfernen und ein anderes Objekt als Ersatz einfügen. Dies ist vergleichbar mit der Behebung mechanischer Probleme in der realen Welt. Wenn irgendwo eine Schraube bricht, ersetzt man nicht gleich die ganze Maschine.

  • Wie erstellt man Objekte in PHP?

    PHP muss nicht nicht zwingend als objektorientierte Programmiersprache verwendet werden, da die meisten PHP-Funktionen nicht objektorientiert sind. Wie wir gesehen haben, bringt die objektorientierte Programmierung jedoch zahlreiche Vorteile mit sich.

    In der objektorientierten Programmierung werden Objekte stets aus Klassen erstellt. Eine Klasse ist sozusagen die Definition eines Objekts, das einzelne Objekt ist eine Instanz einer Klasse, was bedeutet, dass man aus einer Klasse viele Objekte erstellen kann.

    Lass uns also zunächst eine Klasse definieren, zum Beispiel die Klasse „Schüler“:

    Beachte, dass die Klasse „Schüler“ über eine Konstruktorfunktion verfügt, die bei der Erstellung des Objekts ausgeführt wird. Der Konstruktor erhält Argumente, die bei der Konstruktion des Objekts angegeben werden.

    Nun erstellen wir mit dem Schlüsselbegriff new ein neues Objekt aus unserer Schüler-Klasse:

    $Alex = new Schüler(“Alex”, “Müller”);

    Nachdem wir das Objekt in der Variablen $Alex konstruiert haben, können wir nun die Methoden des Objekts verwenden:

    $Alex->namen_sagen();

    Wir haben eine Objektmethode namen_sagen implementiert, die den Namen des Schülers ausgibt. Beachte, dass die Funktion namen_sagen keine Argumente erhält, sie hat jedoch Zugriff auf den Vor- und Nachnamen des Schülers, da diese zuvor im Konstruktor definiert wurden.

    Überblick über die wichtigsten Definitionen im Zusammenhang mit Objekten:

  • Klassen definieren, wie sich Objekte verhalten. Klassen selbst enthalten keine Daten.

  • Objekte sind Instanzen von Klassen. Sie enthalten Daten.

  • Eigenschaften sind Variablen, die zu einem Objekt gehören.

  • Methoden sind Funktionen, die zu einem Objekt gehören und Zugriff auf seine Eigenschaften haben.

  • Konstruktoren sind Methoden, die ausgeführt werden, sobald ein Objekt erstellt wird.

  • Objekt-Vererbung

    Das wohl wichtigste Konzept in Bezug auf Objekte ist die Vererbung. Diese Funktion ermöglicht es uns, einmal geschriebenen Code wiederzuverwenden und ihn zu erweitern. Von Vererbung spricht man, wenn in der objektorientierten Programmierung eine Klasse von einer anderen Klasse abgeleitet wird. Die abgeleitete Klasse ist die Unterklasse, und die Klasse, von der sie abgeleitet wurde, ist die Oberklasse. (Manchmal werden sie auch Kind- und Elternklasse genannt). Anders ausgedrückt: Die untergeordnete Klasse erweitert die übergeordnete Klasse.

    Wenn du zum Beispiel eine Oberklasse „Tiere“ hast, die die Eigenschaften und Methoden aller Tiere definiert, könntest du die Unterklassen „Hund“ und „Katze“ definieren. Objekte, die aus diesen Unterklassen erstellt werden, enthalten jeweils alle Eigenschaften der Tier-Klasse sowie ggf. zusätzliche hunde- bzw. katzenspezifische Eigenschaften und Methoden.