Heim >Backend-Entwicklung >PHP-Problem >Wie heißt die PHP-Destruktormethode?

Wie heißt die PHP-Destruktormethode?

青灯夜游
青灯夜游Original
2023-03-02 19:11:083310Durchsuche

Der Name der PHP-Destruktormethode lautet „__destruct()“ und darf keine Parameter haben. Die Destruktormethode „__destruct()“ wird nur automatisch aufgerufen, bevor das Objekt vom Garbage Collector gesammelt wird (d. h. bevor das Objekt aus dem Speicher gelöscht wird). Sie ermöglicht es Ihnen, einige bestimmte Vorgänge auszuführen, bevor ein Objekt zerstört wird, z Schließen der Datei, Freigeben des Ergebnissatzes usw.

Wie heißt die PHP-Destruktormethode?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP 8-Version, DELL G3-Computer

Der Name der PHP-Destruktormethode lautet „__destruct()“ und darf keine Parameter haben.

PHP __destruct(): Destruktor/Methode

Die Rolle des Destruktors ist genau das Gegenteil des Konstruktors. Der Destruktor funktioniert nur, bevor das Objekt vom Garbage Collector gesammelt wird (d. h. vor dem Objekt). wird aus dem Speicher gelöscht) wird automatisch aufgerufen. Mit Destruktoren können wir bestimmte Vorgänge ausführen, bevor wir ein Objekt zerstören, z. B. das Schließen von Dateien, das Freigeben von Ergebnismengen usw.

In PHP gibt es einen Garbage-Collection-Mechanismus. Wenn auf ein Objekt nicht zugegriffen werden kann, beginnt der Garbage-Collection-Mechanismus automatisch, den vom Objekt belegten Speicherplatz zurückzugewinnen. Der Destruktor wird aufgerufen, bevor das Objekt vom Garbage-Collection-Mechanismus recycelt wird.

Das Deklarationsformat des Destruktors ähnelt dem des Konstruktors. Der Name des in der Klasse deklarierten Destruktors ist ebenfalls festgelegt. Er beginnt auch mit zwei Unterstrichen im Methodennamen __destruct() und der Destruktor darf keine Parameter haben . Das Format zum Deklarieren einer Destruktormethode in einer Klasse ist wie folgt:

public function __destruct(){
    ... ...
}

Der Destruktor wird in PHP nicht sehr häufig verwendet. Er ist ein optionaler Teil der Klasse und wird nur bei Bedarf in der Klasse deklariert.

【Beispiel】Im Folgenden wird anhand eines Beispiels die Verwendung des Destruktors demonstriert.

<?php
    class Website{
        public $name, $url, $title;
        public function __construct(){
            echo &#39;------这里是构造函数------<br>&#39;;
        }
        public function __destruct(){
            echo &#39;------这里是析构函数------<br>&#39;;
        }
    }
    $object = new Website();
    echo &#39;PHP中文网<br>&#39;;
    echo &#39;https://www.php.cn/<br>&#39;;
    echo &#39;脚本运行结束之前会调用对象的析构函数<br>&#39;;
?>

Die laufenden Ergebnisse sind wie folgt:

Wie heißt die PHP-Destruktormethode?

Der Destruktor wird ausgeführt, wenn alle Verweise auf ein Objekt gelöscht werden oder wenn das Objekt explizit zerstört wird.

Wird er ausgeführt, bevor das Objekt zerstört wird?

Laut offiziellem Handbuch wird der Destruktor ausgeführt, wenn alle Verweise auf ein Objekt gelöscht werden oder wenn das Objekt explizit zerstört wird. Die Codedemonstration lautet wie folgt:

class sf{    public function destruct()
    {        echo METHOD . PHP_EOL;
    }
}
 
 
$c1 = new sf;
$c2 = $c1;echo &#39;unset $c2&#39; . PHP_EOL;unset($c2);echo &#39;unset $c1&#39; . PHP_EOL;unset($c1);// ----$c1 = new sf;
$c2 = $c1;echo &#39;null $c2&#39; . PHP_EOL;
$c2 = null;echo &#39;null $c1&#39; . PHP_EOL;
$c1 = null;// ----$c1 = new sf;
$c2 = $c1;echo &#39;123 $c2&#39; . PHP_EOL;
$c2 = 123;echo &#39;456 $c1&#39; . PHP_EOL;
$c1 = 456;echo &#39;the end&#39; . PHP_EOL;

Die laufenden Ergebnisse sind wie folgt:

Wie heißt die PHP-Destruktormethode?

Der Destruktor wird ausgeführt, wenn alle Verweise auf ein Objekt gelöscht werden oder wenn das Objekt explizit zerstört wird.

Normalerweise zerstört PHP die Referenz, wenn das Skript endet (nicht deaktiviert) und wird ausgeführt, bevor das Skript endet.

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWie heißt die PHP-Destruktormethode?. 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