调用unset()释放与该对象关联的内存吗?有几种情况我发现自己处理大型关联数组,我想在完成后删除它们(释放内存以创建新的).
调用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时 未设置() ,了mysql_free_result(),或其他资源,破坏功能中的变数后明确清晰起来.情境2隐式清除资源 - 任何离开范围的变量,即不再适用,都会被清除.最后,情境3隐式释放所有与脚本相关的资源.