GCとかメモリリークとかレキシカルスコープじゃないとか
変数のスコープがレキシカルスコープじゃないから
名前空間から居なくならない限り、変数の参照は生きている
だから、GCの対象にもならない
class Hoge {}; while(True) { new Hoge; }
これは大丈夫だけれど
class Hoge {}; $i=1; while ($i++) { $$i = new Hoge; }
これだとダメ。当たり前と言えば
辺り前だけれどもwhileのブレスで変数の参照
が切れない言語ではメモリリークするって
そんなの普通書かないけれどもさ
レキシカルスコープな言語から
来るとちょいと違和感を感じるネ
ちなみに
class Hoge {}; while (True) { $i = new Hoge; }
だとメモリリークはしない
っと行っても、$iの変数を Hoge のインスタンスが
上書いているだけだけれども
その上書く際に以前のインスタンスの参照は無くなるから
問題は無いはず
ココラヘンは、Zendエンジンとかのソース読めば
早いだろうネ!