PHP内存释放有关的操作

1、&符号的影响
显式引用一个变量,会增加该内存的引用计数:
$a = "something";
$b = &$a;

此时unset($a), 但是仍有$b指向该内存区域的引用,内存不会释放。

2、unset函数的影响
unset只是断开一个变量到一块内存区域的连接,同时将该内存区域的引用计数-1;但是在循环体内部,例如:$a=new A(); unset($a);并不会将$a的引用计数减到零;

3、对变量赋null值操作的影响;
$a = null 是直接将$a 指向的数据结构置空,同时将其引用计数归0。

4、脚本执行结束的影响
脚本执行结束,该脚本中使用的所有内存都会被释放,不论是否有引用环。

那么以上介绍了这么多和内存有关的东西,但是内存的回收都是由PHP的垃圾回收进程来进行的。当然你也可以像写C一样,自己手动回收进程,对所使用的变量进行null赋值。但这样会增加了程序的复杂度,而一般对于PHP来说不建议这样做,如果像你的问答里说的,在处理大量和运行时间长的代码里,那最好还是手动去销毁一些不使用的变量。并且可以通过memory_get_usage和memory_get_peak_usage等函数监测内存的使用情况。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值