en2k
Erfahrenes Mitglied
Hallo,
ich habe folgendes Problem: Ich möchte ein Objekt aus einem anderen Objekt heraus zerstören. Beide Objekte müssen allerdings global existieren, deshalb die Einbindung von $myA über 'global'. Aber anscheinend funktioniert das so nicht.
Das Skript gibt mir folgende Ausgabe zurück:
Wie man sieht, wird der Destruktor von $myA erst am Skriptende aufgerufen. Aber wieso? Kann man Variablen, die man per global einbindet, nicht mittels unset löschen? Anlegen geht ja schließlich auch...
Vielen Dank im Voraus.
Nino
ich habe folgendes Problem: Ich möchte ein Objekt aus einem anderen Objekt heraus zerstören. Beide Objekte müssen allerdings global existieren, deshalb die Einbindung von $myA über 'global'. Aber anscheinend funktioniert das so nicht.
PHP:
<?php
class a {
public function __construct() {
echo "Konstruktor A<br>";
}
public function __destruct() {
echo "Destruktor A<br>";
}
}
class b {
public function __construct() {
global $myA;
$myA = new a();
echo "Konstruktor B<br>";
}
public function __destruct() {
global $myA;
unset($myA);
echo "Destruktor B<br>";
}
}
$myB = new b();
unset($myB);
echo "Ende<br>";
?>
Das Skript gibt mir folgende Ausgabe zurück:
PHP:
Konstruktor A
Konstruktor B
Destruktor B
Ende
Destruktor A
Wie man sieht, wird der Destruktor von $myA erst am Skriptende aufgerufen. Aber wieso? Kann man Variablen, die man per global einbindet, nicht mittels unset löschen? Anlegen geht ja schließlich auch...
Vielen Dank im Voraus.
Nino