Die sogenannten „Magischen Methoden“ können innerhalb von PHP-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>"; }
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!"; }
Der Destructor wird aufgerufen, wenn das Objekt nicht mehr angesprochen oder mit „unset ( $object )“ vernichet wird.
function __destruct() { echo "<p>Objekt wird vernichtet</p>"; }
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" 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"