0

我正在用 PHP 编写一个代理类。

为此,我使用魔术方法来捕获对代理实例的调用/获取/设置...,并将它们转发到该实例。

但是,我不确定在这种情况下该怎么做:

class Proxy {

    // Proxied object
    private $instance;

    // ...

    function __destruct() {
        // unset($this->instance); ?
        // $this->instance->__destruct(); ?
        // nothing ?
    }

}

我应该(我可以)显式调用析构函数吗?或者我应该只是取消设置对象,知道它不会真正摧毁它(至少,立即)?

还是我应该什么都不做,等待垃圾收集器销毁实例?

4

2 回答 2

0

不要做任何事。垃圾收集器会处理它,可能与代理差不多同时进行。

于 2012-09-07T15:01:15.293 回答
0

我强烈建议您不要在代理死亡时释放实例类。我不确定你是如何在你的代码库中做事的,但有可能某些东西仍然会引用你的实例类。让 GC 处理它更安全。析构函数在 PHP 中很少有用。

于 2012-09-07T15:20:30.830 回答