void destruct (void)
PHP 5 führte das Konzept des Destruktors ein, das anderen objektorientierten Sprachen ähnelt. wie C++. Ein Destruktor wird ausgeführt, wenn alle Verweise auf ein Objekt entfernt werden oder wenn das Objekt explizit zerstört wird.
Destruktor-Beispiel
<?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 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.
class x { function construct() { $this->file = fopen('path', 'a'); } function destruct() { fclose($this->file); } }
Um es einfach auszudrücken: Der Destruktor wird verwendet, um spezielle Arbeiten auszuführen, wenn das Objekt geschlossen wird. Im obigen Beispiel, das ich geschrieben habe, wird beispielsweise eine Datei gleichzeitig mit der Instanziierung geöffnet , aber wann wird es geschlossen? Schließen Sie es einfach nach der Verwendung, damit der Destruktor es direkt schließt. In diesem Fall können Sie die Verwendung in Betracht ziehen Der Destruktor ist abgeschlossen. Diese Objektattribute sind noch vorhanden und werden nur für den internen Zugriff verwendet, sodass Sie sicher alle Nacharbeiten im Zusammenhang mit dem Objekt durchführen können.
Der Destruktor dient nicht dazu, die Objekte zu entfernen Eigener Speicher Release, aber verwenden Sie es, um PHP dorthin zu führen, wo der Speicher freigegeben werden muss, wenn der Benutzer etwas zusätzlichen Speicher freigeben muss. Schließlich muss PHP während der Zerstörung
verwenden Schreiben Sie explizit fiktive Funktionen. Sofern Sie nicht wirklich Ressourcen haben, die freigegeben werden müssen, verwenden Sie Folgendes:
);
= NULL; .
Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung der Verwendung des PHP-Destruktors. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!