PHP 中更改引用计数时触发事件

Fire event at changing refcount in PHP

当 refcount = 0 时,__destruct 魔术方法被调用。有什么方法可以捕捉到引用计数减少或增加但不为零的事实吗?

此类事件的一个用例是检测对象是被共享 (refcount > 1) 还是被拥有 (refcount = 1)。

编辑:好像不是。一种可能的解决方案是向 PHP 添加两个新的魔术方法:__owned 和 __shared。当 refcount = 0(破坏)、refcount = 1(拥有)和 refcount > 1(共享)时,我们会有方法。我将与 PHP 内部人员讨论。

不是没有自定义扩展名。 PHP 源代码中的很多地方都更改了 Refcount。添加事件可能会降低语言速度。

有关详细信息,请在 PHP 来源中搜索 GC_ADDREF(object);