【发布时间】:2012-12-14 12:10:45
【问题描述】:
代码更好地说明了我的要求:
function foo(){
$var = get_huge_amount_of_data();
return $var[0];
}
$s = foo();
// is memory freed here for the $var variable created above?
do_other_stuff(); // need memory here lol
所以我知道 $var 在某些时候会被释放,但是 PHP 能有效地做到这一点吗?还是我需要手动取消设置昂贵的变量?
【问题讨论】:
-
有效地 - 你不能这样问。您认为 有效 的内容可能有所不同(很可能是您询问 BTW 的方式)在 PHP 中实际上 有效。
-
好吧,我的意思是,一旦很明显该变量将不再被使用,就立即执行。
-
甚至更早。随着函数的结束,所有本地变量都消失了。数据是否(暂时)留在内存中并不重要。但是要知道你需要更多地了解内存管理,我想这不是你的强项(请不要冒犯)。立即从系统中取消分配内存块的成本太高,只是因为不再使用局部变量。