Heim > Artikel > Backend-Entwicklung > Was ist ein Destruktor in PHP?
Destruktor
__destruct ( void ) : void
PHP 5 führte das Konzept des Destruktors ein, das anderen objektorientierten Sprachen wie C++ ähnelt . Ein Destruktor wird ausgeführt, wenn alle Verweise auf ein Objekt entfernt werden oder wenn das Objekt explizit zerstört wird.
Der Destruktor wird ausgeführt, wenn alle Verweise auf ein Objekt gelöscht werden (ob explizit zerstört oder implizit zerstört) oder wenn die PHP-Datei ausgeführt wird.
Alle Verweise auf ein Objekt werden gelöscht: (Empfohlenes Lernen: PHP-Programmierung vom Anfänger bis zum Experten)
、使用unset(对象名),将对象名销毁 2、$对象名 = null 3、$对象名 = 'abc'
Explizite Zerstörung:
Die drei oben beschriebenen Methoden sind alle explizite Zerstörung. Die sogenannte explizite Zerstörung bedeutet, dass der Programmierer die Objektreferenz aktiv löscht.
Wenn der Programmierer das Objekt nicht explizit zerstört, wird das Objekt nach Abschluss der Programmausführung vom System zerstört. Dies ist eine Systemzerstörung. Wird auch implizite Zerstörung genannt.
Grundlegende Syntax:
class 类名{ public function __destruct(){ //函数体 //析构函数的重要作用,就是释放对象创建的资源 //比如 数据库连接,文件句柄,绘图句柄。。。 } }
Erklärung:
(1) Die Destruktoren sind alle öffentlich
(2) __destruct ist ein Schlüsselwort, ändern Sie es nicht
(3) Der Destruktor hat keine formalen Parameter
(4) Der Destruktor wird vom System aufgerufen
( 5) Der Destruktor wird vom System in den folgenden Situationen aufgerufen:
Die PHP-Datei wird ausgeführt
Wenn alle Verweise auf ein Objekt gelöscht 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 das Skript mit exit() beendet wird. Durch den Aufruf von exit() im Destruktor werden die verbleibenden Shutdown-Vorgänge 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 vonWas ist ein Destruktor in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!