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"