内容简介:诶呀 , 这个问题说出来有些傻X , 但不测试一下. 写程序心里还是发慌.PHP的内存回收原理, 不多说了 自己看手册. 就是个引用计数器, 变量上没有数量就回收了.对象也是一样, 当你实例化的对象赋值到变量上, 这个对象的引用关系就赋值到变量上了. 如果重新赋值对象变量, 原有对象也就没有计数了, 也就被注销了.
诶呀 , 这个问题说出来有些傻X , 但不测试一下. 写程序心里还是发慌.
PHP的内存回收原理, 不多说了 自己看手册. 就是个引用计数器, 变量上没有数量就回收了.
对象也是一样, 当你实例化的对象赋值到变量上, 这个对象的引用关系就赋值到变量上了. 如果重新赋值对象变量, 原有对象也就没有计数了, 也就被注销了.
举个栗子:
<?php class Obj { public function __construct() { echo __FUNCTION__, PHP_EOL; } public function __destruct() { echo __FUNCTION__, PHP_EOL; } } $data = new Obj(); $i =0 ; do { if ($i > 3) { $data = []; // 注销对象 unset 也 ok 只要计数归零 对象就会注销 (swoole 对象内生成定时器问题 待测试) } sleep(1); echo $i++, PHP_EOL; } while($i < 5);
运行后输出
localhost:Desktop admin$ php test.php __construct 0 1 2 3 __destruct 4 localhost:Desktop admin$
答案很明显了, 重新赋值对象变量, 析构函数触发.
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Vue+Express实现登录,注销
- EventBus源码剖析(1) — 注册与注销订阅
- 腾讯QQ:注销功能预计下周正式发布
- 腾讯QQ号注销真的来了,方法还超简单
- 排查 Dubbo 接口重复注销问题,我发现了一个巧妙的设计
- 「小程序JAVA实战」小程序我的个人信息-注销功能(40)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。