PHP垃圾收集和函数

PHP垃圾收集和函数,php,memory-leaks,phpquery,Php,Memory Leaks,Phpquery,我在循环中使用PHPQuery(HTML解析器),每次都使用PHPQuery::unloadDocuments()来取消前一个文档的设置。循环简化为: while(...){ $doc="parsed stuff"; ... unset($doc); } 但是,这其中存在内存泄漏,因为脚本在一段时间后内存不足。在线搜索后,有人建议为了避免内存泄漏,我应该将其包装在函数中,因此我将其更改为: function r(){ $doc="parsed stuff"; ... u

我在循环中使用PHPQuery(HTML解析器),每次都使用
PHPQuery::unloadDocuments()
来取消前一个文档的设置。循环简化为:

while(...){
  $doc="parsed stuff";
  ...
  unset($doc);
}
但是,这其中存在内存泄漏,因为脚本在一段时间后内存不足。在线搜索后,有人建议为了避免内存泄漏,我应该将其包装在函数中,因此我将其更改为:

function r(){
  $doc="parsed stuff";
  ...
  unset($doc);
}
while(...)
  r();

现在,内存泄漏停止了。为什么会这样?

看看这个,is有一个很好的例子。

你的意思是为什么现在没有内存泄漏?循环中定义了其他变量吗?silentboy:没错,Koterpillar:我想有很多变量,超过50个。截面:5.3