2010-01-22 101 views
2

我的類有一個成員變量數組,項目。我週期性地將數組重新分配爲另一個臨時數組的值,如下所示:重新分配數組可釋放它所使用的內存?

$temp = array(); 
$temp[] = new Object(); 
$temp[] = new Object(); 
$temp[] = new Object(); 
... etc. 

$this->items = $temp; 

所以,我可以有內存泄漏嗎?通過將$ this-> temp的值重新分配給一個新值$ temp,原來在$ this-> temp中的所有項目(這些項目都是對象)仍然徘徊,還是會被釋放?

回答

3

這不會導致內存泄漏。 $ temp和$ this-> items只是對同一個數組的引用。由於PHP是一種垃圾收集語言,當沒有更多的數組引用時,數組將被刪除(垃圾收集)。

1

他們會在一段時間內徘徊,但在PHP中,他們最終將被釋放garbage collector

+1

Java,C#和其他內存管理語言也是如此。請注意,這是**不是**在C/C++中沒有垃圾收集器的情況;任何由'new'('malloc()')分配的內存必須稍後由'delete'('free()')釋放 – 2010-01-22 18:15:56