Dies ist eine alte Version des Dokuments!
Die sogenannten „Magischen Methoden“ können innerhalb von Klassen angewendet werden.
Der Konstruktur wird beim Erstellen eines Objektes angelegt.
function __construct() { echo "<p>Objekt wird angelegt</p>"; }
Diese Methode wird aufgerufen, wenn die angesprochene Methode nicht vorhanden ist.
function __call( $methode, $parameter ) { echo "<p>Methode '$methode' nicht vorhanden</p>"; }
Wenn eine nicht exisiterende Objekt-Variable ausgelesen werden soll, wird die Methode „get“ ausgeführt.
function __get( $var ) { echo "<p>Variable '$var' kann nicht ausgelesen werden.</p>"; }
Wenn eine nicht existierende Objekt-Variable gesetzt werden soll, wird die Methode „set“ ausgeführt.
function __set( $var, $wert ) { echo "<p>Variable '$var' kann nicht gesetzt werden.</p>"; }
Der Destructor wird aufgerufen, wenn das Objekt nicht mehr angesprochen oder mit „unset ( $object )“ vernichet wird.
function __destruct() { echo "<p>Objekt wird vernichtet</p>"; }
Beispiel
class abc { function __construct() { // Dieser Konstruktur wird beim Erstellen des Objektes angelegt echo "<p>Objekt wird angelegt</p>"; } function __call( $methode, $parameter ) { // wird aufgerufen, wenn die angesprochene Methode nicht vorhanden ist echo "<p>Methode '$methode' nicht vorhanden</p>"; } function __get( $var ) { // wenn $var nicht ausgelesen werden kann echo "<p>Variable '$var' kann nicht ausgelesen werden.</p>"; } function __set( $var, $wert ) { // wenn $var nicht mit dem Wert $wert gesetzt werden kann echo "<p>Variable '$var' kann nicht gesetzt werden.</p>"; } function __destruct() { // wird beim unset ( $object ); oder am Ende des Scriptes ausgeführt print "<p>Objekt wird vernichtet</p>"; } } $test = new abc; // Ergebnis: "Objekt wird angelegt" $test->unbekannteMethode(); // Ergebnis: "Methode 'unbekannteMethode' nicht vorhanden" $test->unbekannteVariable; // Ergebnis: "Variable 'unbekannteVariable' kann nicht ausgelesen werden." $test->unbekannteVariable = "Hallo"; // Ergebnis: "Variable 'unbekannteVariable' kann nicht gesetzt werden." // "Objekt wird vernichtet"