2011-07-07 3 views
1

クラス変数がいくつかのメソッド内で設定されています。このクラスには、unset()関数を使用してクラス変数を設定解除する__destruct()関数があります。PHP5で_destruct内のすべてのクラス変数を自動的に設定解除する

今、私はすべての変数を__destructで設定解除するようにリストしていますが、すべてを設定解除する方法があるようです。例えば、今の私はこれを

をしています:

function __destruct() 
{ 
    unset($this->variable1); 
    unset($this->variable2); 
    //et cetera 
} 

は確かに右、それらをリストアップすることなく、それらすべての設定を解除する方法はとてもありますか?

答えて

5
foreach ($this as &$value) { 
    $value = null; 
} 

http://www.php.net/manual/en/language.oop5.iterations.phpを参照してください。

プロパティは、クラス/オブジェクトの一部であるunsetプロパティではありません。値を消去する代わりに、nullに設定してください。しかし、オブジェクトは、とにかくメモリから外出することについてのものであり、すべてのプロパティはそれと共に移動します。これを行う必要は本当にありません。

+0

ありがとうございました。私は、スクリプトがオブジェクトのインスタンスで実行されたときに、それがフラッシュされることを理解していますが、私は(私は何をすべきか)は良いプログラミングの練習でした。 – Anonymous

+2

不要なコードを書くことを避けることをお勧めします。 :) – deceze

+0

あなたのクラスがIteratorAggregateを実装していて、そのメソッドがクラスの単一の配列プロパティにのみ適用されている場合、これはどのようにして行いますか?これを静的なプロパティにもどうやって適用しますか? –

関連する問題