PHP的内存问题(5)

Jos*_*h K 0 php memory unset

调用unset()释放与该对象关联的内存吗?有几种情况我发现自己处理大型关联数组,我想在完成后删除它们(释放内存以创建新的).

Sar*_*raz 7

调用unset()是否释放与该对象关联的内存?

是的,它确实.

使用memory_get_usage()以下方法检查自己

echo memory_get_usage() . "<br />";
unset($array['key']);
unset($array['key2']);
unset($array['key3']);
echo memory_get_usage();
Run Code Online (Sandbox Code Playgroud)

更多资源:

引用后来的链接:

PHP在三个主要接口处执行垃圾收集:

  1. 当你说出来的时候
  2. 当你离开一个功能
  3. 当脚本结束时

当您使用情况1时 未设置() ,了mysql_free_result(),或其他资源,破坏功能中的变数后明确清晰起来.情境2隐式清除资源 - 任何离开范围的变量,即不再适用,都会被清除.最后,情境3隐式释放所有与脚本相关的资源.