php unset函数 赋值 null来销毁变量
php中unset()是用来销毁变量的,但很多时候,这个函数只把变量给销毁了,内存中存放的该变量的值仍然没有销毁,也就是没能达到我们想要的释放内存的效果。这里我建议大家用 $变量=null 的方法来释放其内存
1. 该函数只有在变量值所占空间超过255字节长的时候才会释放内存 2. 只有当指向该值的所有变量(比如有引用变量指向该值)都被销毁后,地址才会被释放(也要执行1的判断)
$test = str_repeat("1",256); $p = &$test; $s = memory_get_usage(); // unset($test); //$test = null; unset($test); $e = memory_get_usage(); echo ' 释放内存: '.($s-$e); //为0,因为还有$p引用$test之前指向的值
$test = str_repeat("1",256); $p = &$test; $s = memory_get_usage(); // unset($test); $test = null; $e = memory_get_usage(); echo ' 释放内存: '.($s-$e); //为272
$test = str_repeat("1",256); $p = &$test; $s = memory_get_usage(); unset($test); unset($p); // $test = null; $e = memory_get_usage(); echo ' 释放内存: '.($s-$e); //272,删除了引用
- 上一篇 »php常用函数自己总结
- 下一篇 »PHP符号