Heim >Backend-Entwicklung >PHP-Problem >Wann wird der PHP-Destruktor aufgerufen?

Wann wird der PHP-Destruktor aufgerufen?

(*-*)浩
(*-*)浩Original
2019-09-12 13:25:314426Durchsuche

Wann wird der PHP-Destruktor aufgerufen?

Wann wird der Destruktor aufgerufen?

Der Destruktor wird in den folgenden 3 Situationen aufgerufen:

Wenn der Objektlebenszyklus endet und zerstört wird;

Aktives Aufrufen von delete; Mitglied des Objekts o. Wenn der Destruktor von o aufgerufen wird, wird auch der Destruktor des Objekts i aufgerufen.

PHP 5 führte das Konzept von Destruktoren ein, ähnlich wie bei anderen objektorientierten Sprachen wie C++. Ein Destruktor wird ausgeführt, wenn alle Verweise auf ein Objekt entfernt werden oder wenn das Objekt explizit zerstört wird.

<?php
class MyDestructableClass {
   function __construct() {
       print "In constructor\n";
       $this->name = "MyDestructableClass";
   }

   function __destruct() {
       print "Destroying " . $this->name . "\n";
   }
}

$obj = new MyDestructableClass();
?>

Wie der Konstruktor wird auch der Destruktor der übergeordneten Klasse nicht heimlich von der Engine aufgerufen. Um den Destruktor der übergeordneten Klasse auszuführen, muss parent::__destruct() explizit im Destruktorkörper der untergeordneten Klasse aufgerufen werden. Darüber hinaus erbt die Unterklasse genau wie der Konstruktor die übergeordnete Klasse, wenn sie keinen Destruktor definiert. Der Destruktor wird auch dann aufgerufen, wenn exit() zum Beenden des Skripts verwendet wird. Durch den Aufruf von „exit()“ im Destruktor wird der Rest des Shutdown-Vorgangs abgebrochen.

Hinweis:

Der Destruktor wird aufgerufen, wenn das Skript geschlossen wird, nachdem alle HTTP-Header gesendet wurden. Es ist möglich, dass das Arbeitsverzeichnis beim Schließen des Skripts ein anderes ist als in einem SAPI (z. B. Apache).

Hinweis:

Der Versuch, eine Ausnahme im Destruktor auszulösen (der aufgerufen wird, wenn das Skript beendet wird), führt zu einem schwerwiegenden Fehler.

Das obige ist der detaillierte Inhalt vonWann wird der PHP-Destruktor aufgerufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn