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