是的,它确实被释放了。
您可以使用以下方法进行检查:
function a() {
$var = "Hello World";
$content = "";
for ($i = 0; $i < 10000; $i++) {
$content .= $var;
}
print '<br>$content size:'.strlen($content);
print '<br>memory in function:'.memory_get_usage();
return null;
}
print '<br>memory before function:'.memory_get_usage();
a();
print '<br>memory after function:'.memory_get_usage();
输出:
memory before function:273312
$content size:110000
memory in function:383520
memory after function:273352
在函数 PHP 使用 273312 字节之前。
在函数完成之前,我们再次检查了内存使用情况,它使用了 383520。
我们检查了 $content 的大小,即 110000 字节。
273312 + 110000 = 383312
剩下的 208 字节来自其他变量(我们只计算了 $content)
函数完成后,我们再次检查内存使用情况,它恢复到(几乎(40 字节差异))和之前一样.
40 字节的差异很可能是函数声明和 for 循环声明。