====== Magische Methoden ====== Die sogenannten "Magischen Methoden" können innerhalb von PHP-Klassen angewendet werden. ===== Funktion "construct" ===== Der Konstruktur wird beim Erstellen eines Objektes angelegt. function __construct() { echo "

Objekt wird angelegt

"; }
===== Funktion "call" ===== Diese Methode wird aufgerufen, wenn die angesprochene Methode nicht vorhanden ist. function __call( $methode, $parameter ) { echo "

Methode '$methode' nicht vorhanden

"; }
===== Funktion "get" ===== Wenn eine nicht exisiterende Objekt-Variable ausgelesen werden soll, wird die Methode "get" ausgeführt. function __get( $var ) { echo "

Variable '$var' kann nicht ausgelesen werden.

"; }
===== Funktion "set" ===== Wenn eine nicht existierende Objekt-Variable gesetzt werden soll, wird die Methode "set" ausgeführt. function __set( $var, $wert ) { echo "

Variable '$var' kann nicht gesetzt werden.

"; }
===== Funktion "toString" ===== Mit der toString()-Methode kann festgelegt werden, was ausgegeben wird, wenn das Objekt als Zeichenkette angefordert wird. function __toString() { return "Jetzt bin ich eine Zeichenkette!"; } ===== Funktion "destruct" ===== Der Destructor wird aufgerufen, wenn das Objekt nicht mehr angesprochen oder mit "unset ( $object )" vernichet wird. function __destruct() { echo "

Objekt wird vernichtet

"; }
---- ==== Beispiel ==== class abc { function __construct() { // Dieser Konstruktur wird beim Erstellen des Objektes angelegt echo "

Objekt wird angelegt

"; } function __call( $methode, $parameter ) { // wird aufgerufen, wenn die angesprochene Methode nicht vorhanden ist echo "

Methode '$methode' nicht vorhanden

"; } function __get( $var ) { // wenn $var nicht ausgelesen werden kann echo "

Variable '$var' kann nicht ausgelesen werden.

"; } function __set( $var, $wert ) { // wenn $var nicht mit dem Wert $wert gesetzt werden kann echo "

Variable '$var' kann nicht gesetzt werden.

"; } function __destruct() { // wird beim unset ( $object ); oder am Ende des Scriptes ausgeführt print "

Objekt wird vernichtet

"; } } $test = new abc; // Ergebnis: "Objekt wird angelegt" echo $test; // Ergebnis: Jetzt bin ich eine Zeichenkette! $test->bla(); // Ergebnis: "Methode 'bla' nicht vorhanden" $test->bla; // Ergebnis: "Variable 'bla' kann nicht ausgelesen werden." $test->bla = "Hallo"; // Ergebnis: "Variable 'bla' kann nicht gesetzt werden." // "Objekt wird vernichtet"