(letzte Änderung an dieser Seite: 03.08.2010)
(letzte Synchronisation der PDF-Präsentation: 02.08.2017)
Falls keine PDF-Präsentation zu sehen ist, klicken Sie zum Download hier: Direktdownload PDF-Präsentation
Eine Klasse definiert, wie ein Objekt aussehen wird, nachdem es instanziiert (erzeugt …) worden ist.
Notationskonvention: Klassen werden immer großgeschrieben.
PHP-Codeclass Klassenname { //Attribute und Methoden }
Das Schlüsselwort $this
(und der Zugriffsoperator ->
(vgl. php-resource.de: Wie nennt sich der Pfeil … bei OOP) wird immer verwendet, wenn man Mitglieder (Methoden oder Eigenschaften) der Klasse innerhalb der Klasse selbst aufruft. $this
ist ein reservierten Variablenname, der sich auf das aktuelle Objekt bezieht.
Sie verwenden $this
also immer dann, wenn Eigenschaften/Anweisungen sich auf ein bestimmtes, instanziiertes Objekt beziehen sollen.
Beispiel:
PHP-Codeclass Hund { //Attribut (Eigenschaft) public $hungrig = 'Ich habe Hunger.'; // Methode public function fressen($nahrung) { $this->hungrig = 'Habe keinen so großen Hunger.'; } }
Hier bezeichnet $this
das jeweils eigene Objekt. Würde man ein Objekt der Klasse Hund (z.B.: $hund_fritz) instanziieren und die Funktion fressen
(genauer: $objekt->fressen
) aufrufen, würde für das Objekt $hund_fritz die Variable “hungrig” (also: $hund_fritz->hungrig) entsprechend geändert.
Das lässt sich überprüfen, indem wir zwei Hund-Objekte instanziieren:
PHP-Code$rex = new Hund; $hasso = new Hund; // Hund rex bekommt etwas zu fressen, Hund hasso aber nicht $rex->fressen('Knochen'); // echo $hungrig; // führt zu einer Fehlermeldung "undefined variable" echo "Zustand von Rex: " . $rex->hungrig . "<br />"; // rex ist satt echo "Zustand von Hasso: " . $hasso->hungrig; // hasso ist hungrig
PHP-Code$herbert = new Kunde; $dieter = new Kunde; $herbert->wohnortAendern('Hamburg'); echo "Herbert wohnt in " . $herbert->wohnort . ".<br />\n"; echo "Dieter wohnt immer noch in " . $dieter->wohnort . ".";
PHP-Codeclass Auto { public $geschwindigkeit = 80; private $leistung = 200; private $farbe = 'rot'; public function aendereGeschwindigkeit($speed) { $this->geschwindigkeit = $speed; } public function leistungAusgeben() { return $this->leistung; } public function farbeAusgeben() { return $this->farbe; } } $kaefer = new Auto; $porsche = new Auto; $kaefer->aendereGeschwindigkeit(90); $porsche->aendereGeschwindigkeit(300); echo "Käfer fährt jetzt " . $kaefer->geschwindigkeit . "und hat die Leistung " . $kaefer->leistungAusgeben() . " und hat die Farbe " . $kaefer->farbeAusgeben() . ".<br />\n"; echo "Porsche fährt jetzt " . $porsche->geschwindigkeit . "und hat die Leistung " . $porsche->leistungAusgeben() . " und hat die Farbe " . $porsche->farbeAusgeben() . ".<br />\n";