ホームページ > バックエンド開発 > PHPの問題 > PHPのデストラクタメソッドの名前は何ですか

PHPのデストラクタメソッドの名前は何ですか

青灯夜游
リリース: 2023-03-17 22:36:01
オリジナル
3260 人が閲覧しました

php デストラクター メソッドの名前は「__destruct()」であり、パラメーターを含めることはできません。 「__destruct()」デストラクター メソッドは、オブジェクトがガベージ コレクターによって収集される前 (つまり、オブジェクトがメモリから削除される前) にのみ自動的に呼び出されます。これにより、オブジェクトを破棄する前に、次のような特定の操作を実行できます。ファイルを閉じる、結果セットを解放するなど。

PHPのデストラクタメソッドの名前は何ですか

#このチュートリアルの動作環境: Windows7 システム、PHP8 バージョン、DELL G3 コンピューター

php デストラクター メソッドの名前は「__destruct ()」であり、パラメーターを含めることはできません。

PHP __destruct(): デストラクター/メソッド

デストラクターの役割は、コンストラクターのまったく逆です。オブジェクトがガベージ コレクターによって収集される前 (つまり、オブジェクトがメモリから削除される前) にのみ自動的に呼び出されます。デストラクターを使用すると、オブジェクトを破棄する前に、ファイルを閉じる、結果セットを解放するなど、特定の操作を実行できます。

PHP にはガベージ コレクション メカニズムがあり、オブジェクトにアクセスできない場合、ガベージ コレクション メカニズムはオブジェクトが占有しているメモリ領域を自動的に再利用し始めます。デストラクターは、オブジェクトがガベージ コレクション メカニズムによってリサイクルされる前に呼び出されます。

デストラクタの宣言形式はコンストラクタと同様です。クラス内で宣言されるデストラクタ名も固定です。また、メソッド名 __destruct() は 2 つのアンダースコアで始まり、デストラクタはパラメータを受け取ることはできません。クラスでデストラクター メソッドを宣言する形式は次のとおりです:


public function __destruct(){
    ... ...
}
ログイン後にコピー

デストラクターは PHP ではあまり一般的に使用されません。これはクラスのオプションの部分であり、必要な場合にのみクラス内で宣言されます。 . .

[例] 以下では、例を使用してデストラクターの使用法を示します。

<?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;;
?>
ログイン後にコピー

実行結果は次のとおりです。

PHPのデストラクタメソッドの名前は何ですか

#デストラクターは、オブジェクトへのすべての参照が削除されるか、オブジェクトが明示的に破棄されるときに実行されます。

オブジェクトが破棄される前に実行しますか?

公式マニュアルによると、デストラクタは、オブジェクトへの参照がすべて削除されたとき、またはオブジェクトが明示的に破棄されたときに実行されます。コードのデモは次のとおりです。

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;
ログイン後にコピー

実行結果は次のとおりです。

PHPのデストラクタメソッドの名前は何ですか

デストラクターは、オブジェクトへのすべての参照が削除されるか、オブジェクトは実行時に明示的に破棄されます。

一般に、php はスクリプトの終了時に参照を破棄し (設定解除ではなく)、スクリプトが終了する前に実行します。

推奨学習: 「

PHP ビデオ チュートリアル

以上がPHPのデストラクタメソッドの名前は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート