2013-03-24 105 views
4

我在循環中使用PHPQuery(HTML解析器),並且每次使用phpQuery::unloadDocuments()取消設置以前的文檔。該循環簡化爲:PHP垃圾收集和函數

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

但是,這裏有內存泄漏,因爲腳本在一段時間後內存不足。在網上搜索後,有人建議,以避免內存泄漏,我應該把它包在一個函數,所以我改成了這樣:

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

現在,內存泄漏停止。爲什麼是這樣?

+0

你的意思是爲什麼現在沒有內存泄漏? – 2013-03-24 05:08:56

+0

循環中定義的其他變量? – Koterpillar 2013-03-24 05:28:55

+0

PHP的版本? – sectus 2013-03-24 06:29:06

回答