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

PHP デストラクタとリサイクル メカニズム

不言
不言オリジナル
2018-04-26 10:47:471023ブラウズ

この記事の内容は、PHP のデストラクターとリサイクルのメカニズムに関するもので、必要な友達に参考にしていただけるように共有します。 *

質問

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 デストラクタとリサイクル メカニズム
// ===コードパート3===PHP デストラクタとリサイクル メカニズム

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 つだけあり、死ぬのは 1 回だけです
システムがリサイクルしているとき、つまりページが実行されているときに消滅したため、オフラインでした
*/

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

/ *
質問

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

答え: はい

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

答え: PHP ページが実行されたため、最後のものは破棄されます。

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

関連する推奨事項:


PHPコンストラクターの詳しい説明

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

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