如何释放使用以下代码创建的变量?
id, timestamp, link_id, user_id, ip_id, user_agent_id, ...
答案 0 :(得分:1)
PHP有垃圾收集内存管理。你通常不会手动/强制释放它,当没有更多的参考时它会得到GC。但是,您必须正确使用引用。
在documentation中,查看Z_ADDREF
,Z_DECREF
和zval_ptr_dtor
。还有一个Z_FREE
,但您通常不应该使用此功能 - 您不想强制释放其他" live"中引用的zval
。 (可达)值!
有关如何将参考系统与相应的纯PHP代码的具体示例一起使用的概述,请参阅文档中的reference tutorial。
准确回答您的问题:MAKE_STD_ZVAL
以引用计数为1启动值。因此,只需一次调用
zval_ptr_dtor(zval_);
将删除该引用并在下一次GC迭代时清除该变量(与Z_FREE
不同,即使您将值传递给可能将其存储在某处并增加其引用计数等的函数,这也会做正确的事情。 ...)