假如我在用户链接时(Events::onConnect里)实例化了一个对象($user=new User(id,name,password))用于从数据库获取相应的数据,保存在对象里,当用户断开链接后,怎么销毁这个对象呢?如果不管他,他会一直在内存里。
根据php变量回收规则,函数(包括类方法)里产生的所有变量都是临时变量,函数执行完毕变量自动释放。Events::onConnect里产生的User实例也是一样,如果你没把User实例存储到类的静态成员或者全局变量里,onConnect执行完User实例就自动释放了。如果不确认是否释放了,在User类的__destruct方法里打印下日志就知道了。
__destruct
谢谢您的解答,经过您说的办法测试,发现当用户断开连接,实例就销毁了!
根据php变量回收规则,函数(包括类方法)里产生的所有变量都是临时变量,函数执行完毕变量自动释放。Events::onConnect里产生的User实例也是一样,如果你没把User实例存储到类的静态成员或者全局变量里,onConnect执行完User实例就自动释放了。如果不确认是否释放了,在User类的
__destruct
方法里打印下日志就知道了。谢谢您的解答,经过您说的办法测试,发现当用户断开连接,实例就销毁了!