Klassen
Eine
Klasse
ist
eine
Sammlung
von
Variablen
und
Funktionen
,
die
mit
diesen
Variablen
arbeiten
.
Eine
Klasse
wird
folgendermaßen
definiert
:
In
diesem
Beispiel
wird
eine
Klasse
"
Cart
"
definiert
.
Sie
besteht
aus
einem
assoziativen
Array
von
Produkten
im
Einkaufswagen
und
zwei
Funktionen
zum
Hinzufügen
und
Entfernen
von
Artikeln
.
Achtung
|
Die
folgenden
warnenden
Bemerkungen
gelten
für
PHP
4
.
Der
Name
stdClass
ist
reserviert
,
da
er
intern
von
Zend
benutzt
wird
.
Sie
können
in
PHP
keine
Klasse
mit
dem
Namen
stdClass
haben
.
Die
Funktionsnamen
__sleep
und
__wakeup
Die
Funktionsnamen
__sleep
und
__wakeup
sind
in
PHP
Klassen
"
magisch
"
.
Sie
können
in
Ihren
Klassen
keine
Funktionen
mit
diesen
Namen
haben
,
außer
Sie
wollen
sie
mit
dieser
"
magischen
"
Funktionalität
assoziieren
.
Mehr
Informationen
dazu
finden
Sie
weiter
unten
.
Sämtliche
mit
__
beginnende
Funktionsnamen
sind
PHP
als
"
magisch
"
vorbehalten
.
Es
wird
empfohlen
,
in
PHP
keine
Funktionsnamen
mit
__
zu
verwenden
,
außer
Sie
möchten
dokumentierte
"
magische
"
Funktionalität
.
|
Anmerkung
:
In
PHP
4
sind
nur
konstante
Initialisierungen
für
var
In
PHP
4
sind
nur
konstante
Initialisierungen
für
var
Variablen
erlaubt
.
Um
Variablen
mit
nicht
konstanten
Werten
zu
initialisieren
,
benötigen
Sie
eine
Funktion
zur
Initialisierung
,
welche
beim
Erstellen
eines
Objektes
automatisch
von
der
Klasse
aufgerufen
wird
.
Eine
solche
Funktion
wird
Konstruktor
genannt
(
siehe
unten
)
.
Klassen
sind
Typen
,
das
heißt
sie
sind
die
Blaupausen
für
reale
Variablen
.
Um
sie
zu
nutzen
,
muss
zunächst
eine
Variable
mit
dem
Operator
new
angelegt
werden
.
Dies
erstellt
die
Objekte
$cart
und
$another_cart
aus
der
Klasse
Cart
.
Dann
wird
die
Funktion
add_item(
)
des
$cart
Objektes
aufgerufen
,
um
$cart
einen
Artikel
mit
der
Artikelnummer
10
hinzuzufügen
.
3
Artikel
mit
der
Artikelnummer
0815
werden
$another_cart
hinzugefügt
.
Sowohl
$cart
als
auch
$another_cart
haben
die
Funktionen
add_item(
)
,
remove_item(
)
und
die
Variable
items
.
Dies
sind
verschiedene
Funktionen
und
Variablen
.
Sie
können
sich
Objekte
ähnlich
den
Verzeichnissen
in
einem
Dateisystem
vorstellen
.
Sie
können
in
einem
Dateisystem
zwei
verschiedene
Dateien
README.TXT
haben
,
solange
sie
sich
in
verschiedenen
Verzeichnissen
befinden
.
So
wie
Sie
in
Verzeichnissen
den
vollen
Pfadnamen
eingeben
müssen
,
um
jede
Datei
von
dem
obersten
Verzeichnis
aus
zu
erreichen
,
müssen
Sie
auch
den
vollen
Namen
der
aufzurufenden
Funktion
angeben
:
Das
heißt
für
PHP
,
dass
das
Hauptverzeichnis
der
globale
Namensbereich
,
und
der
Separator
des
Pfadnamens
-
wäre
.
Deshalb
benennen
die
Namen
$cart
-
items
und
$another_cart
-
items
auch
zwei
verschiedene
Variablen
.
Beachten
Sie
,
dass
die
Variable
$cart
-
items
,
und
nicht
$cart
-
$items
genannt
wird
,
da
ein
Variablenname
in
PHP
nur
ein
einziges
Dollarzeichen
hat
.
Innerhalb
einer
Klassendefinition
ist
nicht
bekannt
,
unter
welchem
Namen
das
Objekt
in
Ihrem
Programm
erreichbar
sein
wird
:
Als
die
Klasse
Cart
geschrieben
wurde
war
nicht
bekannt
,
dass
das
Objekt
später
$cart
oder
$another_cart
genannt
wird
.
Deshalb
können
Sie
innerhalb
der
Klasse
Cart
selbst
auch
nicht
$cart
-
items
schreiben
.
Um
nun
die
eigenen
Funktionen
und
Variablen
innerhalb
einer
Klasse
anzusprechen
,
können
Sie
die
Pseudo-Variable
$this
verwenden
,
welche
Sie
auch
als
'
meine
eigene
'
oder
'aktuelles
Objekt
'
verstehen
können
.
Deshalb
kann
'
$this
-
items[$artnr
]
+=
$num
'
auch
als
'addiere
$num
zu
$artnr
in
meinem
eigenen
Array
items'
,
oder
'addiere
$num
zu
$artnr
im
Array
items
innerhalb
des
aktuellen
Objektes
'
lesen
.
Anmerkung
:
Es
gibt
ein
paar
angenehme
Funktionen
,
um
mit
Klassen
und
Objekten
umzugehen
.
Mehr
darüber
erfahren
Sie
im
Kapitel
Klassen
-
und
Objekt-Funktionen
.