在foreach语句中使用gc_collect

时间:2011-11-20 10:55:21

标签: php memory-leaks foreach

我的代码中有foreach语句。每一步计算大量数据,然后进入下一步。我运行此代码并继续我的工作,当我回去阅读日志时,看到内存泄漏错误。所以阅读php.net并发现gc_collect_cycle对这种情况有好处。 将此行添加到foreach块的最后一行:

echo "Check GC enabled : " . gc_enabled();
echo "Number of affected cycles : " . gc_collect_cycles();

输出是这样的:

Check GC enabled : 1
Number of affected cycles : 0

为什么循环存在但受影响的循环为0?

1 个答案:

答案 0 :(得分:1)

在这种情况下,循环不是指循环语句(例如foreach)。 循环表示代码中的循环引用。见http://php.net/manual/en/features.gc.collecting-cycles.php