2017-07-26 48 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,你应该写相当小功能它会自动丢弃在其范围内的所有变量,当他们返回,这意味着事情会变得垃圾自动收集,而不是迟早你不需要担心很多。