php释放类,在用PHP释放内存方面有什么更好的:unset()或$var=null

548fd55efaea02b0f1434b90588fd824.png

慕瓜9086354

这是在2009年未设置手册页:unset()做它的名字说的-取消一个变量。它不强制立即释放内存。PHP的垃圾收集器会在它认为合适的时候完成它,因为这些CPU周期无论如何都不需要,或者是在脚本耗尽内存之前,不管首先发生什么。如果你在做$whatever = null;然后重写变量的数据。您可能会更快地释放/缩小内存,但它可能会更快地从真正需要它们的代码中窃取CPU周期,从而导致更长的总体执行时间。(自2013年以来,unset手册页不要再包括那部分了)请注意,直到php5.3,如果您有循环引用中的两个对象,例如在父-子关系中,对父对象调用unset()将不会释放用于子对象中父引用的内存。(当父对象被垃圾收集时,内存也不会被释放。)虫33595)问题“未设置与=NULL之间的差异“详细说明一些不同之处:unset($a)也移除$a来自符号表;例如:$a = str_repeat('hello world ', 100);unset($a);var_dump($a);产出:Notice: Undefined variable: a in xxx

NULL但当$a = null使用:$a = str_repeat('hello world ', 100);$a = null;var_dump($a);Outputs:NULL看来$a = null比它快一点unset()相对应:更新符号表条目似乎比删除它更快。当您尝试使用不存在的unset)变量,则会触发错误,变量表达式的值将为NULL。(因为,PHP还应该做什么呢?每个表达式都需要得到一些值。)一个赋值为空的变量仍然是一个完全正常的变量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值