PHP クラス オブジェクトはいつ破棄されますか?解決方法

WBOY
リリース: 2016-06-13 13:53:14
オリジナル
2097 人が閲覧しました

PHP クラスのオブジェクトはいつ破棄されますか?
質問がありますが、オブジェクトはいつ自動的に破棄されますか? もちろん、スクリプトの実行後にオブジェクト a を作成すると、その関数が実行されるときにオブジェクト a が破棄されます。自動的に破壊されます。何ですか?

-----解決策--------------------------------
参考:
http://school.itzcn.com/special-spid-30.html
上記の説明はより詳細です。
投稿者の参考になれば幸いです。
------解決策---------
正確にはガベージコレクタを実行することです次にリサイクルします...

通常は問題ありません。関数終了後にリサイクルされます...


しかし、興味がある場合は、このプログラムを実行できます: (

class A {
function __construct () {
$this ->b = new B($this);
}
function __destruct () {
$this->b->__destruct();
}
}

class B {
function __construct ($parent = NULL) {
$this->parent = $parent;
}
function __destruct () {
unset($ this->parent);
}
}

function test(){
for ($i = 0 ; $i <10000 ; $i++) {
$ a = new A();
//$a->__destruct() // この行をコメントアウトする場合とコメントアウトしない場合の違いを確認してください
}
}

test( );
echonumber_format(memory_get_usage());


上記の行をコメントしたのとコメントしなかったのでは結果が全く異なります



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