Jede Klassendefinition beginnt mit dem Schlüsselwort class, gefolgt von
einem Klassennamen, welcher ein beliebiger Name sein kann, der kein
reservierter Bezeichner von PHP ist.
Darauf folgt ein Paar geschweifter Klammern, die die Definitionen der
Klassenmember und Methoden enthalten. Die Pseudovariable
$this
ist verfügbar, falls eine Methode aus einem
Objektkontext heraus aufgerufen wird. $this
ist eine
Referenz auf das aufrufende Objekt (üblicherweise das Objekt zu dem die
Methode gehört, es kann sich aber auch um ein anderes Objekt handeln, falls
die Methode statisch aus dem
Kontext eines zusätzlichen Objektes aufgerufen wird). Dies wird anhand
der nachfolgenden Beispiele erläutert:
Der Standardwert muss ein konstanter Ausdruck sein, keine (z.B.) variable, Klassenattribut oder Funktionsaufruf.
Beispiel 19-3. Standradwerte von Klassenattributen
|
Anmerkung: Es gibt nette Funktionen, um Klassen und Objekte zu behandeln. Sie möchten vielleicht einen Blick auf Klassen/Objekte werfen.
Um eine Instanz einer Klasse zu erzeugen, muss ein neues Objekt erzeugt und einer Variablen zugewiesen werden. Bei der Erzeugung wird das Objekt immer zugewiesen, außer wenn das Objekt einen definierten Konstruktor besitzt, der aufgrund eines Fehlers eine Exception wirft. Klassen sollten vor ihrer Instantiierung definiert werden (in manchen Fällen ist dies eine Notwendigkeit).
Wenn man eine bereits erzeugte Instanz einer Klasse einer neuen Variablen zuweist, wird die neue Variable auf die selbe Instanz zugreifen wie das Objekt, das zugewiesen wurde. Dieses Verhalten ist das selbe, wenn man Instanzen an Funktionen übergibt. Eine Kopie eines bereits erzeugten Objektes erhält man, indem man es klont.
Beispiel 19-5. Objektzuweisung
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
|
Eine Klasse kann Methoden und Member einer anderen Klasse erben, indem man das extends Schlüsselwort in der Deklaration benutzt. Es ist nicht möglich, mehrere Klassen zu erweitern, eine Klasse kann nur eine einzige Basisklasse beerben.
Die ererbten Methoden - es sei denn Sie wurden von der Vaterklasse als final definiert - und Member können überschrieben werden, indem Sie mit dem selben Namen wie in der Vaterklasse erneut deklariert werden. Es ist möglich, auf die überschriebene Methode oder Member zuzugreifen, wenn diese mittels parent:: referenziert werden.
Beispiel 19-6. Einfache Vererbung
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
|
Zurück | Zum Anfang | Weiter |
Klassen und Objekte (PHP 5) | Nach oben | Autoloading |