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 Download *
Seite SELFPHP Banner *
Seite SELFPHP in Buchform
Seite Newsletter *
Seite Impressum

 
* 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:
 



 

Verbesserungen des OOP-Konzepts in PHP4




PHP 4 unterstützt die objektorientierte Programmierung wesentlich besser als PHP 3. PHP 5 geht sogar noch einige Schritte weiter, die Sie im Kapitel 7 kennen lernen werden. Seit PHP 4 können Klassenfunktionen von anderen Klassenfunktionen oder auch aus dem globalen Gültigkeitsbereich heraus aufgerufen werden.

Aufruf einer Klassenfunktion in PHP 4

INSTANZ::KLASSENFUNKTION();

Da es sich bei einem Konstruktor ebenfalls um eine Klassenfunktion handelt, kann eine Subklasse auch den Konstruktor einer Superklasse aufrufen.

Das folgende Beispiel zeigt, wie in der abgeleiteten Klasse Chipsaetze der Konstruktor der Elternklasse Chip aufgerufen wird. Beim Ableiten des Objekts $chipsatz von der Klasse Chipsatz werden somit, wie die Ausgabe demonstriert, die Konstruktoren der Elternklasse und der Kindklasse aufgerufen.


Beispiel



<?php
class Chip
{
    function 
Chip() {
        echo 
"Ich bin ein Chip.<br>";
    }
}
class 
Chipsaetze
{
    function 
Chipsaetze() {
        
Chip::Chip();
        echo 
"Als Chipsatz können wir noch mehr!<br>";
    }
}
$chipsatz = new Chipsaetze;
?>




Ausgabe



Ich bin ein Chip.
Als Chipsatz können wir noch mehr!



Dass eine Klassenfunktion einer Klasse auch aus dem globalen Gültigkeitsbereich heraus aufgerufen werden kann, zeigt das nächste Beispiel.

Hier wird der Konstruktor der Klasse Chip zum ersten Mal beim Instanzieren der Klasse Chipsaetze und ein zweites Mal ausserhalb eines Klassendefinition, vom Hauptprogramm aus aufgerufen:



<?php
class Chip
{
    function 
Chip() {
        echo 
"Ich bin ein Chip.<br>";
    }
}
class 
Chipsaetze
{
    function 
Chipsaetze() {
        
Chip::Chip();
        echo 
"Als Chipsatz können wir noch mehr!<br>";
    }
}
$chipsatz = new Chipsaetze;
Chip::Chip();
?>




Ausgabe



Ich bin ein Chip.
Als Chipsatz können wir noch mehr!
Ich bin ein Chip.



Ein weiteres Beispiel zeigt, wie das Überschreiben einer Funktion unter Verwendung der neuen Möglichkeiten effizienter durchgeführt werden kann.

Zunächst wird in der neu definierten Funktion der Kindklasse die entsprechende Funktion der Elternklasse aufgerufen und anschliessend ergänzt. Auf diese Weise kann noch verwendbarer Code der Elternklasse auch beim Überschreiben in der Kinderklasse genutzt werden, wo er lediglich ergänzt werden muss.


Beispiel



<?php
class Chip
{
    function 
Chip() {
        echo 
"Chip wurde produziert.<br>";
    }
    function 
produzieren($anzahl) {
        
$anzahl++;
        return(
$anzahl);
    }
}
class 
Chipsaetze extends Chip
{
    function 
Chipsaetze() {
        
Chip::Chip();
        echo 
"Chipsatz wurde produziert.<br>";
    }
    function 
produzieren($anzahl) {
        
$anzahl Chip::produzieren($anzahl);
        
$anzahl $anzahl*$anzahl;
        return(
$anzahl);
    }
}
$chip1 = new Chip;
echo 
$chip1->produzieren(100);
echo 
"<br>";
$chipsatz1 = new Chipsaetze;
echo 
$chipsatz1->produzieren(100);
?>




Ausgabe



Chip wurde produziert.
101
Chip wurde produziert.
Chipsatz wurde produziert.
10201




 


Vertiefung der OOP-Techniken
 




 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