クラス destruct で unset($this) するのは良い考えですか?
function __destruct(){
unset($this);
}
クラス destruct で unset($this) するのは良い考えですか?
function __destruct(){
unset($this);
}
$this
は PHP の特別な変数です。その特別な、疑似変数です。クラス/オブジェクトコンテキスト内から、おそらく以前のPHPバージョンで設定を解除できるかどうか疑問に思いますが、それは欠陥と見なす必要があります。
そんなことしたらダメ。オブジェクト ポインターの設定を解除すると (つまり、外部から)、ガベージ コレクションが自動的に処理されます。
この関数は、集約や構成を使用する場合のよう__destruct
に、実際にはオブジェクトの内部にある「外部」オブジェクト ポインターの設定を解除するためのものです。$this
特に循環参照では、PHP ガベージ コレクターがより効率的にジョブを実行するのに役立つ場合があります。しかし、これは$this
オブジェクトが実際に何を運ぶかに依存するのではなく、具体的なコードに大きく依存することを意味します。
ガベージ コレクターが対処できないと感じている実際のメモリの問題に遭遇していますか? はいと答えることができる場合にのみ、通常は について考える必要があります__destruct
。
いいえ、まったく無意味です。unset
メモリ自体を解放するのではなく、ガベージ コレクションの候補としてマークするだけです。これは、オブジェクトの破棄がすでに意味することとまったく同じです。