1

当 refcount = 0 时,调用 __destruct 魔术方法。有没有办法捕捉到 refcount 减少或增加但不是零的事实?

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

编辑:好像没有。一个可能的解决方案是在 PHP 中添加两个新的魔法方法:__owned 和 __shared。当 refcount = 0(销毁)、refcount = 1(拥有)和 refcount > 1(共享)时,我们会有方法。我将讨论 PHP 内部。

4

1 回答 1

0

并非没有自定义扩展。PHP 源代码中的很多地方都更改了 Refcount。添加一个事件可能会减慢语言的速度。

有关更多信息,请GC_ADDREF(object);在 PHP 源代码中搜索。

于 2020-07-13T21:50:00.363 回答