overload()

Aus php bar
Wechseln zu: Navigation, Suche

VERALTET: Diese(s) Funktion/Funktionalität/Verhalten ist ab PHP 5 veraltet und sollte nicht mehr verwendet werden.
Seit PHP 5 unterstützt jede Klasse das Überladen.

Die Funktion overload() aktiviert das Überladen von Eigenschaften und Methoden einer Klasse. In der Klasse müssen die Funktionen __get(), __set() und __call() definiert sein. Diese drei Methoden werden automatisch aufgerufen wenn auf Eigenschaften oder Methoden zugegriffen wird die nicht definiert sind.

Sollte versucht werden ein Wert einer Eigenschaft zuzuweisen, die nicht existiert, wird die Methode __set() mit dem Namen der Eigenschaft und dem zugewiesenen Wert aufgerufen. Bei Abfrage einer Eigenschaft, bei dem die selben Kriterien gelten, wird die Methode __get() mit entsprechendem Wert als Variablenübergabe aufgerufen. Bei Aufruf einer Methode entsprechender Kriterien wird die Methode __call() mit dem Namen der aufgerufenen Funktion und die übergebenen Argumente als Array aufgerufen.

 span class="coMULTI">/**
      * Wird aufgerufen wenn eine nicht existierende
      * Eigenschaft aufgerufen (ausgegeben) wird
      *
      * @param string $name
      */'Die Eigenschaft ' . $name . ' ist nicht definiert.';
     }
 
     /**
10      * Wird aufgerufen wenn eine nicht existierende
11      * Eigenschaft beschrieben wird
12      *
13      * @param string $name
14      * @param string $value
15      */'Die Eigenschaft ' . $name . ' ist nicht definiert.';
16     }
17 
18     /**
19      * Wird aufgerufen wenn eine nicht existierende
20      * Mehtode aufgerufen wird
21      *
22      * @param string $name
23      * @param array  $values
24      */'Die Methode ' . $name . ' ist nicht definiert.';
25     }
26 }
27 
28 overload('foo'// ruft $foo->_get( 'eigenschaft' ) auf
29 // ruft $foo->_set( 'eigenschaft', true ) auf
30 // ruft $foo->_call( 'methode', array( $argument ) ) auf
31 $foo->methode( $argument );