重新分配一个数组会释放它使用的内存吗?

时间:2010-01-22 18:05:38

标签: php arrays memory-management garbage-collection

我的类有一个成员变量数组,items。我会定期将数组重新分配给另一个临时数组的值,如下所示:

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

$this->items = $temp;

那么,我有内存泄漏吗?通过将$ this-> temp的值重新分配给一个新值$ temp,原来在$ this-> temp中的所有项目(项目都是对象)是否仍会徘徊,或者它们会被释放?

2 个答案:

答案 0 :(得分:3)

这不会导致内存泄漏。 $ temp和$ this->项只是对同一个数组的引用。由于PHP是一种垃圾收集语言,当没有更多对数组的引用时,数组将被删除(垃圾收集)。

答案 1 :(得分:1)

他们会徘徊一会儿,但在PHP中,他们最终会被garbage collector释放。