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:
 



 

Überladen von Klassen durch Overloading




Bei einer weiteren Extension, handelt es sich um das Overloading, sie ermöglicht das benutzerdefinierter Überladen (eng. Overloading) der Zugriffe auf Klassenvariablen und Methodenaufrufe, wodurch allgemein die Existenz von Methoden gleichen Namens möglich ist, sofern sie sich in der Art oder Anzahl ihrer Parameter unterscheiden. Die Overloading-Extension stellt lediglich eine Funktion zur Verfügung und zwar overload(), welche den Namen der Klasse benötigt, um das Überladen von Eigenschaften und Methoden einer Klasse zu aktivieren. Um das Überladen zu ermöglichen, müssen allerdings entsprechende Methoden, wie __get(), __set() und __call() innerhalb des Objekts deklariert werden.

Beispielsweise ist es hiermit möglich, dass eine bestimmte Aktion automatisch ausgeführt wird, wenn auf eine Klassenvariable das erste Mal zugegriffen wird. Im Falle einer Datenbankverbindung könnte dies dazu genutzt werden, dass diese nicht bereits im Konstruktor der Klasse aufgebaut wird, sondern erst dann, wenn sie benötigt wird:



<?php

class DatenBank {
    function 
__get($propertyName, &$propertyValue) {
    switch (
$propertyName) {
    case 
"verbindung": {
        if (!isset(
$this->verbindung)) {
        
$this->verbindung $this->verbinden();
        }
        
$propertyValue $this->verbindung;
    }
    break;
    }
    return 
true;
    }
}

echo 
overload('DatenBank');

?>



Die Methode __get() aus obigem Beispiel wird automatisch bei jedem Zugriff auf Membervariablen aufgerufen. Bei dem ersten dieser Aufrufe für die Variable $this->verbindung wird die eigentliche Verbindung zur Datenbank durch die Methode $this->verbinden() hergestellt und in $this->verbindung abgelegt. Ähnlich wie __get() können mit __set() und __call() callbacks für schreibende Zugriffe auf Membervariablen sowie für Methodenaufrufe definiert werden.

Achtung: Die Overloading-Funktion steht seit PHP 4.2 zur Verfügung und ist als experimentell zu bezeichnen.



 


Mehrfachvererbung durch Aggregation
 




 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