如何正确地销毁PHP单例实例?

如何正确地销毁PHP单例实例?,php,singleton,destructor,Php,Singleton,Destructor,我试图破坏我的singleton的唯一实例,但无法使其工作 我知道我不应该显式调用析构函数,我应该将包含实例的任何变量设置为null,这样析构函数就可以自动调用了 问题是,我不能完全控制存储此实例的多个变量。。。所以我不能将它们全部设置为空:( 现在我应该像调用$this->uu destruct();的方法那样从类内部调用析构函数吗 我想出了一个解决办法,但我不满意肮脏的方式。 你知道最好的做法是什么吗 以下是我使用的简化代码: <?php Class MySingleton {

我试图破坏我的singleton的唯一实例,但无法使其工作

我知道我不应该显式调用析构函数,我应该将包含实例的任何变量设置为null,这样析构函数就可以自动调用了

问题是,我不能完全控制存储此实例的多个变量。。。所以我不能将它们全部设置为空:(

现在我应该像调用
$this->uu destruct();
的方法那样从类内部调用析构函数吗

我想出了一个解决办法,但我不满意肮脏的方式。 你知道最好的做法是什么吗

以下是我使用的简化代码:

<?php
Class MySingleton
{
    private static $instance= null;

    /**
     * Class constructor.
     */
    private function __construct()
    {
        ...
    }

    /**
     * Get the only instance of this class.
     *
     * @return the only instance of this class.
     */
    public static function getInstance()
    {
        if (!isset(self::$instance)) self::$instance = new self();
        return self::$instance;
    }

    /**
     * Class destructor.
     */
    public function __destruct()
    {
        debug('destructing instance of '.__CLASS__.'.');
        debug($this);
    }
}
?>

要获取/创建实例,我需要:
$myObject=MySingleton::getInstance();


谢谢你宝贵的建议!;)

我还没有见过很多强制销毁具有良好逻辑背景的情况。您希望这样做的原因是什么?此单例是由数据库上下文中的查询实例调用的Where实例。必须在查询结束时删除Where子句,才能将其添加到将来的查询中。Where是一个单例,用于强制用户在每个查询中只生成一个Where子句。