【问题标题】:Fire event at changing refcount in PHP在 PHP 中更改引用计数时触发事件
【发布时间】:2020-11-01 02:15:39
【问题描述】:

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

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

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

【问题讨论】:

  • 我找不到任何引用 docs 的钩子。

标签: php scope automatic-ref-counting ownership-semantics


【解决方案1】:

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

如需了解更多信息,请在 PHP 源代码中搜索 GC_ADDREF(object);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-18
    • 2019-08-02
    • 1970-01-01
    相关资源
    最近更新 更多