ホームページ  >  記事  >  バックエンド開発  >  PHP デストラクタとリサイクル メカニズムの例の詳細な説明

PHP デストラクタとリサイクル メカニズムの例の詳細な説明

小云云
小云云オリジナル
2018-03-31 13:18:581174ブラウズ

この記事では、主に PHP デストラクターとリサイクル メカニズムの例について詳しく説明します。お役に立てれば幸いです。

// ===メモ パート 1===

/*
質問
1. オブジェクトを他のもの (true など) に代入すると、オブジェクトは破棄されますか?
答え: はい

2. 110.php のコードパート 4
なぜ 1 つは破棄され、2 つは空ですか?
最後のものは hr 行の下に表示されます。

答え: PHP ページが実行されたため、最後のものは破棄されます。
システムは最終的にリサイクルされ、この時点で $d が破棄されます。
そのため、hr 行の後ろに表示されます
*/


// ==。 =コード パート 1= ==

class Human2 {

    public $name = null;    public $gender = null;    public function __construct() {
        echo &#39;出生了<br >&#39;;
    }    public function __destruct() {
        echo &#39;再见<br >&#39;;
    }
}$a = new Human2();$b = new Human2();$c = new Human2();$d = new Human2();unset($a);//$b = false;$b = true;//改成true也可以销毁$c = null;echo &#39;<hr >&#39;;



// オブジェクトのリサイクル メカニズム

// ===コード パート 2===

class Human {

    public $name = null;    public $gender = null;    public function __destruct() {
        echo &#39;再见!<br >&#39;;
    }
}$a = new Human();$b = $c = $d = $a;unset($a);echo &#39;<hr >&#39;;

/*
次に、質問は次のとおりです:
1. ?
2. HR ラインで死ぬのか、それとも HR ラインより下で死ぬのか?

答え: 灰色の線の下で一度死亡しました。
図 11101 に示すように、人間の家を開ける鍵 a が 1 つありません。
鍵 b、c、d の 3 つもあります。

最終的にすべてのコードが実行され、リサイクルメカニズムが開始されるまで、
いよいよお別れです。
*/
PHP デストラクタとリサイクル メカニズムの例の詳細な説明
PHP デストラクタとリサイクル メカニズムの例の詳細な説明



// ===コードパート3===

class Human {

    public $name = &#39;张三&#39;;    public $gender = null;    public function __destruct() {
        echo &#39;再见!<br >&#39;;
    }
}$a = new Human();$b = $c = $d = $a;echo $a->name,&#39;<br >&#39;; //张三echo $b->name,&#39;<br >&#39;; //张三$b->name =&#39;李四&#39;;echo $a->name,&#39;<br >&#39;; //李四echo $b->name,&#39;<br >&#39;; //李四unset($a);echo &#39;<hr >&#39;;// hr线// 再见!



// ===コードパート4===

class Human {

    public $name = &#39;张三&#39;;    public $gender = null;    public function __destruct() {
        echo &#39;再见!<br >&#39;;
    }
}$e = $f = $g = new Human();unset($e);echo &#39;unset e<br >&#39;;unset($f);echo &#39;unset f<br >&#39;;unset($g);// 本行unset触发对象消亡,然后执行下一行echo gecho &#39;unset g<br >&#39;;

/*
ここでページが実行されます 完了、オブジェクトが破棄され、デストラクターが実行されます
何個のオブジェクトが破棄されましたか?

答え:
オブジェクトは 1 つだけで、一度だけ消滅します
システムがリサイクルしているとき、つまりページが実行されているときに消滅するため、オフラインになります
*/

関連する推奨事項:

phpコンストラクターとデストラクター 詳しい解説

php コンストラクターとデストラクターの使い方を詳しく解説

PHPのガベージコレクションの仕組みをマスターする

以上がPHP デストラクタとリサイクル メカニズムの例の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。