Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  PHP und OOP
Letztes Update: 16.08.2005 17:53:45


Navigation

Seite News *

Seite Startseite
Seite Über SELFPHP
Seite Werbung
Seite Kontakt
Seite Forum *
Seite PHP-Skripte
Seite PHP Befehlsreferenz
Seite PHP5 Praxisbuch
Seite Gratis-Videolektionen*
Seite Download *
Seite SELFPHP Banner *
Seite SELFPHP in Buchform
Seite Newsletter *
Seite Impressum

Seite Anbieterverzeichnis

 
* Link führt ins Internet


Anbieterverzeichnis
Informieren Sie sich über die Unternehmen in unserem Anbieterverzeichnis!  

 


SELFPHP Forum
Fragen rund um die Themen PHP? In über 79.000 Beiträgen finden Sie sicher die passende Antwort!*  


Newsletter
Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!*

Vorname: 
Name:
E-Mail:
 



 

Klassen in PHP




Der Weg zur objektorientierten Programmierung in PHP führt über das Schlüsselwort class. Mit Hilfe von class sind Sie in der Lage Klassen zu erzeugen, und aus diesen später Instanzen abzuleiten, mit denen sie arbeiten werden.

Das Schemata einer Klassendefinition stellt sich, wie folgt dar:

// Klasse
class classname
{
var $a; // Eigenschaft1
var $b; // Eigenschaft2
...

// Konstruktor
function classname() {
$this->a = wert_a;
...
}

// Methode
function funkname() {
$this->b = wert_b;
...
}
...
}



Fallbeispiel - Warenkorb



<pre>
<?php
// Klasse (ohne Konstruktor)
class warenkorb
{
    var 
$artikel;
    var 
$stueckzahl;
    
    function 
anzahlErhoehen($artnr$stueck) {
        
$this->stueckzahl[$artnr] += $stueck;
    }
    
    function 
eintragen($artnr$name) {
        
$this->artikel[$artnr] = $name;
        
$this->stueckzahl[$artnr] = 1;
    }
}

// Objekt erzeugen
$meinWarenkorb = new warenkorb;

// Produkte in den Warenkorb legen
$meinWarenkorb->eintragen("1001","Skibrille");
$meinWarenkorb->eintragen("1002","Socken");

// Anzahl bestimmter Produkte erhöhen
$meinWarenkorb->anzahlErhoehen("1002",10);

// Ausgabe
echo "Vom Artikel " $meinWarenkorb->artikel["1001"];
echo 
" sind " $meinWarenkorb->stueckzahl["1001"] . " Stück enthalten.<br>";
echo 
"Vom Artikel " $meinWarenkorb->artikel["1002"];
echo 
" sind " $meinWarenkorb->stueckzahl["1002"] . " Stück enthalten.<br>";

echo 
"<p>";

// Ausgabe der Struktur des Objekts
print_r($meinWarenkorb);
?>
</pre>




Ausgabe



Vom Artikel Skibrille sind 1 Stück enthalten.
Vom Artikel Socken sind 11 Stück enthalten.
warenkorb Object
(
    [artikel] => Array
        (
            [1001] => Skibrille
            [1002] => Socken
        )

    [stueckzahl] => Array
        (
            [1001] => 1
            [1002] => 11
        )

)



Das Beispiel zeigt einige wesentliche Prinzipien im Umgang mit einer einfachen Klasse. Sie sollten sich mit den einzelnen Punkten des Beispiels vertraut machen.


Einsatz von class

Die Klassendefinition wird mit dem Schlüsselwort class eingeleitet und im vorliegenden Fallbeispiel um den Klassennamen warenkorb erweitert:

class warenkorb

Die gesamte Klasse ist mit geschweiften Klammern umgeben.


Einsatz von this

Um innerhalb der Klasse auf sich selbst verweisen zu können, wir das Schlüsselwort this eingesetzt. Beachten Sie die Schreibweise beim Zugriff auf die Variable der Klasse, diese können die Eigenschaften der Instanz bilden.

$this->stueckzahl[$artnr] += $stueck;

Das $-Zeichen steht vor this, anschliessend wird der Verweis mit dem speziellen Operator -> gebildet. Achten Sie stets darauf, die korrekte Syntax zu verwenden. Es ist ein beliebter Fehler, etwa this->$var oder gar $this->$var zu schreiben. Problematisch ist, dass PHP dies nicht immer mit einer Fehlermeldung quittiert, sondern oft wird das Skript einfach weiter verarbeitet.


Einsatz von var

Mit Hilfe des Schlüsselwort var werden Variablen im Objekt angelegt, diese ergeben wiederum die Eigenschaften des Objekts.

var $artikel;
var $stueckzahl;


Die Namen sind in dieser Klasse lokal. Abgesehen von der Verwendung in den Methoden können sie auch als Eigenschaften dienen.

Es schliessen sich zwei Methoden ans, die als normale Funktion definiert werden. Wird auf die Klasse selbst zugegriffen, dient das Schlüsselwort this als Indikator.


Einsatz von new

Auch der Einsatz der Klasse unterscheidet sich von der normaler Funktionen. Um die Klasse nutzen zu können, muss zuerst eine Instanz der Klasse gebildet werden:

$meinWarenkorb = new warenkorb;

Die Variable $meinWarenkorb ist nun ein Objekt. Die eigentliche Instanzierung nimmt das Schlüsselwort new vor, der Parameter ist der Name einer zuvor definierten Klasse.


Nutzen des Objekts der Klasse

Vor Ihrem geistigen Auge können Sie die in der Klassendefinition verwendeten this-Schlüsselwörter durch den Namen des Objekts ersetzen.

$meinWarenkorb->eintragen("1001","Skibrille");

Diese Zeile enspricht dem Aufruf der Methode eintragen(). Die gleiche Syntax wird auch verwendet, um die Eigenschaften des Objekts abzufragen:

$meinWarenkorb->artikel["1001"];

Sollte Ihnen diese Form schwer lesbar erscheinen, denken Sie daran, dass es sich bei $meinWarenkorb tatsächlich um eine reguläre Variable handelt. Diese Variable enthält ein Objekt, auf dessen Bestandteile Sie mit Hilfe des Operator -> verweisen. Alles was hinter dem Namen des Bestandteils steht, ist von dessen Konstruktion abhängig und unterscheidet sich nicht von der herkömmlichen Syntax.


 


PHP vs OOP
 




 sponsored by

Host Europe


HighText iBusiness


Host Europe




© 2001-2006 E-Mail SELFPHP - Damir Enseleit, info@selfphp.deImpressumKontakt
© 2005-2006 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de