2017-07-26 41 views
1

我從這個SO question瞭解到,在PHP中銷燬對象的最好方法是使用unsetPHP析構函數| unset()VS覆蓋對象

我想知道如果我甚至需要的,如果我用基本相同的變種在循環中破壞對象...

foreach ($ids_array as $id) { 
    $O = new Object($id); 

    // stuff and things 
} 

這是否真的使用相同的內存還是我在不知不覺中創造了一堆的物體,而不是摧毀它們?

+0

您每次通過循環覆蓋'$ O'。 – AbraCadaver

回答

2

如果沒有變量指向一個對象,它最終會收集垃圾。爲此,無論您是變量還是簡單地分配其他內容,都不會引用該對象。

IMO你應該很少使用unset,你應該寫相當小功能它會自動丟棄在其範圍內的所有變量,當他們返回,這意味着事情會變得垃圾自動收集,而不是遲早你不需要擔心很多。