Heim > Backend-Entwicklung > PHP-Problem > Was ist ein Destruktor in PHP?

Was ist ein Destruktor in PHP?

(*-*)浩
Freigeben: 2023-02-23 18:42:01
Original
3086 Leute haben es durchsucht

Was ist ein Destruktor in PHP?

Destruktor

__destruct ( void ) : void
Nach dem Login kopieren

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'
Nach dem Login kopieren

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(){
    //函数体
    //析构函数的重要作用,就是释放对象创建的资源
    //比如 数据库连接,文件句柄,绘图句柄。。。
    }
}
Nach dem Login kopieren

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();
?>
Nach dem Login kopieren

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!

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage