
PHP > Klassen und Objekte mit PHP
Autor: Brainfish
Einführung in Klassen und Objekte in PHP anhand eines Beispiels.
Zur Zeit gehört PHP zu den weitverbreitetsten Skriptsprachen, was dynamisch generierte Webseiten angeht. Da sie, gerade durch die Möglichkeit der includes, stark funktionsbasierend ist, bot sich für die Sprachentwickler der Ausbau zu einer objektorientierten Sprache geradezu an. Dieser Ausbau wurde am 22. Mai 2000 mit dem Erscheinen von PHP 4.0 begonnen, und dauert weiterhin an. So wurde in PHP 5.2 mit den Objekten DateTime und DateTimeZone Methoden eingeführt, die für das objektorientierte Datums-Handling zu gebrauchen sind.
Doch wollen wir nichts überstürzen, sondern beginnen von vorne. Eine Klasse definiert man in PHP folgendermaßen:
Hiermit definiert ihr eine Klasse haus, die zwei Eigenschaften besitzt: $wohnungen, und $bewohner. Der nächste Schritt wäre, dieses Haus zu bauen, d.h. ihr erzeugt ein Objekt dieser Klasse:
Das & nach dem Gleichheitszeichen hat folgende Bewandtnis: Wenn Objekte kreiert werden, kann es (erwünscht) sein, dass sie den Objekten, die sie instanziiert haben, noch was zurückmelden. Üblicherweise melden sie sich selber zurück, es sei denn, man hat im Konstruktor etwas anderes definiert. Wenn ihr nur "=new" benutzt, wird das Objekt zwar erstellt, aber es meldet nur eine Kopie zurück, während es selber anonym bleibt. Dies wird durch das &-Zeichen verhindert, das bezwingt, dass sich die Instanz selber zurückmeldet.
Nun haben wir eine Villa. Allerdings ist sie noch leer, und hat keine Bewohner. Dies ändert ihr, indem ihr der Variable $bewohner einen Wert zuweist. Dafür muss PHP aber wissen, dass ihr euch auf die Eigenschaft der Villa bezieht, und nicht anderswo drauf. In anderen bekannten Programmiersprachen benutzt man dafür das Symbol "." (Punkt), um Instanzname und Eigenschaft zusammenzuführen. PHP handlet das ebenfalls, allerdings ist hier nicht der Punkt, sondern der einfache Pfeil zu gebrauchen.
Wichtig: Hier benutzt man den einfachen Pfeil ->, NICHT den Doppelpfeil =>, der beim Arbeiten mit Arrays zu gebrauchen ist.
Nun haben wir eine Villa mit 4 Bewohnern. Das ist zwar schön und gut, doch euch nutzt sie nicht viel, weil ihr die Methoden fehlen, um damit zu arbeiten. Diese Methoden werden in der Klasse vor der Instantiierung definiert. Das könnte z.B. so aussehen:
Wenn man nun ein neues Haus, wie gehabt, instantiiert, kann man mit dem Pfeil auf die Methode renovieren() zugreifen.
Zu beachten ist hier auch, dass weiterhin vor dem Objektnamen das Dollarzeichen stehen bleiben muss.
Möchte man beim Aufruf einer Instanz direkt einen Wert mit übergeben oder eine Methode ausführen, so braucht man den Konstruktor. Er ist eine Methode, die genau gleich heißt, wie die Klasse, und beim Instantiieren mit aufgerufen wird.
Wenn man nun eine neue Instanz von haus erstellt, kann man direkt beim Aufruf die Etagen mit übergeben, und der Konstruktor verarbeitet sie weiter.
Anmerkung: Mit der reservierten Variable $this kann man innerhalb eines Objektes/einer Klasse dieses Objekt direkt ansprechen.
Keine Bewertung.
Dieses Tutorial wurde geschrieben von Brainfish - Homepage
Tags: php objekte klassen
Schritt 1 - Klassen und Objekte mit PHP
Zur Zeit gehört PHP zu den weitverbreitetsten Skriptsprachen, was dynamisch generierte Webseiten angeht. Da sie, gerade durch die Möglichkeit der includes, stark funktionsbasierend ist, bot sich für die Sprachentwickler der Ausbau zu einer objektorientierten Sprache geradezu an. Dieser Ausbau wurde am 22. Mai 2000 mit dem Erscheinen von PHP 4.0 begonnen, und dauert weiterhin an. So wurde in PHP 5.2 mit den Objekten DateTime und DateTimeZone Methoden eingeführt, die für das objektorientierte Datums-Handling zu gebrauchen sind.
Doch wollen wir nichts überstürzen, sondern beginnen von vorne. Eine Klasse definiert man in PHP folgendermaßen:
PHP-Code
class haus{
var $wohnungen;
var $bewohner;
}
Hiermit definiert ihr eine Klasse haus, die zwei Eigenschaften besitzt: $wohnungen, und $bewohner. Der nächste Schritt wäre, dieses Haus zu bauen, d.h. ihr erzeugt ein Objekt dieser Klasse:
PHP-Code
haus $villa =& new haus();
Das & nach dem Gleichheitszeichen hat folgende Bewandtnis: Wenn Objekte kreiert werden, kann es (erwünscht) sein, dass sie den Objekten, die sie instanziiert haben, noch was zurückmelden. Üblicherweise melden sie sich selber zurück, es sei denn, man hat im Konstruktor etwas anderes definiert. Wenn ihr nur "=new" benutzt, wird das Objekt zwar erstellt, aber es meldet nur eine Kopie zurück, während es selber anonym bleibt. Dies wird durch das &-Zeichen verhindert, das bezwingt, dass sich die Instanz selber zurückmeldet.
Nun haben wir eine Villa. Allerdings ist sie noch leer, und hat keine Bewohner. Dies ändert ihr, indem ihr der Variable $bewohner einen Wert zuweist. Dafür muss PHP aber wissen, dass ihr euch auf die Eigenschaft der Villa bezieht, und nicht anderswo drauf. In anderen bekannten Programmiersprachen benutzt man dafür das Symbol "." (Punkt), um Instanzname und Eigenschaft zusammenzuführen. PHP handlet das ebenfalls, allerdings ist hier nicht der Punkt, sondern der einfache Pfeil zu gebrauchen.
PHP-Code
$villa->bewohner=4;
Wichtig: Hier benutzt man den einfachen Pfeil ->, NICHT den Doppelpfeil =>, der beim Arbeiten mit Arrays zu gebrauchen ist.
Nun haben wir eine Villa mit 4 Bewohnern. Das ist zwar schön und gut, doch euch nutzt sie nicht viel, weil ihr die Methoden fehlen, um damit zu arbeiten. Diese Methoden werden in der Klasse vor der Instantiierung definiert. Das könnte z.B. so aussehen:
PHP-Code
class haus{
function renovieren(){
//Hier könnte sinnloser Beispielcode stehen
}
}
Wenn man nun ein neues Haus, wie gehabt, instantiiert, kann man mit dem Pfeil auf die Methode renovieren() zugreifen.
PHP-Code
haus $huette =& new haus();
$huette->renovieren();
Zu beachten ist hier auch, dass weiterhin vor dem Objektnamen das Dollarzeichen stehen bleiben muss.
Möchte man beim Aufruf einer Instanz direkt einen Wert mit übergeben oder eine Methode ausführen, so braucht man den Konstruktor. Er ist eine Methode, die genau gleich heißt, wie die Klasse, und beim Instantiieren mit aufgerufen wird.
PHP-Code
class haus($etagen){
var $etagen;
funtion haus(){
$this->$etagen = $etagen;
}
}
Wenn man nun eine neue Instanz von haus erstellt, kann man direkt beim Aufruf die Etagen mit übergeben, und der Konstruktor verarbeitet sie weiter.
Anmerkung: Mit der reservierten Variable $this kann man innerhalb eines Objektes/einer Klasse dieses Objekt direkt ansprechen.
Keine Bewertung.
Dieses Tutorial wurde geschrieben von Brainfish - Homepage
Tags: php objekte klassen
Kommentare
Kommentare schreiben
Kommentare
Kommentare zu dieser Tutorial
Das Tuorial hätte ruhig ausführlicher sein können.
So hättest du auch
ruhig [i]public[/i] und sowas erklären können!
05.06.2009 11:54 newwarrior
ruhig [i]public[/i] und sowas erklären können!
05.06.2009 11:54 newwarrior
Ähnliche Tutorials
Ähnliche Tutorials zu 'Klassen und Objekte mit PHP'
