public function foo($file1, $file2){
$obj = new Obj();
$data = array();
$data[] = $obj->importAFile($file1);
$data[] = $obj->importAFile($file2);
return $data;
}
请问内存分配给$回归后的obj得到释放?如何在PHP中释放内存?
如果不是我怎样才能释放它?
public function foo($file1, $file2){
$obj = new Obj();
$data = array();
$data[] = $obj->importAFile($file1);
$data[] = $obj->importAFile($file2);
return $data;
}
请问内存分配给$回归后的obj得到释放?如何在PHP中释放内存?
如果不是我怎样才能释放它?
PHP使用garbace收集器。它释放了没有引用剩下的所有变量。假设$ obj-> importAFile()不返回对$ obj的引用,内存将被释放。但是,不能保证内存何时被释放。如果$ obj包含对自身的引用,则在旧版本的PHP中,内存也不会被释放。你可以阅读更多PHP documentation
它为你管理内存。当有你的对象
之间的一些循环引用通过一个变量使用未设置(),你可能只有一个问题,你标记它“垃圾收集”从字面上看,作为PHP并没有真正有一个,所以内存不会立即可用。变量不再包含数据,但即使在调用unset()之后,堆栈仍保持当前大小。将变量设置为NULL会丢弃数据并几乎立即收缩堆栈内存。
这为我工作在几个场合内存耗尽的警告被调谐之前抛出,然后抵消变量调用后未设置()。在取消之后取消设置可能不是必要的,但我在取消之后仍然使用它。
PHP有一个垃圾收集器。你可以用'gc_enable()'和'gc_collect_cycles()'来启用它 – ILikeTacos
在PHP有垃圾收集器http://stackoverflow.com/questions/1735492/is-there-garbage-collection-in-php – stecb