本文介绍了在PHP5中创建Singleton设计模式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何使用PHP5类创建一个Singleton类?
How would one create a Singleton class using PHP5 classes?
推荐答案
/**
* Singleton class
*
*/
final class UserFactory
{
/**
* Call this method to get singleton
*
* @return UserFactory
*/
public static function Instance()
{
static $inst = null;
if ($inst === null) {
$inst = new UserFactory();
}
return $inst;
}
/**
* Private ctor so nobody else can instance it
*
*/
private function __construct()
{
}
}
要使用:
$fact = UserFactory::Instance();
$fact2 = UserFactory::Instance();
$ fact == $ fact2;
$fact == $fact2;
但是:
$fact = new UserFactory()
抛出错误。
请参阅了解静态变量范围,为什么设置 static $ inst = null;
可以使用。
See http://php.net/manual/en/language.variables.scope.php#language.variables.scope.static to understand static variable scopes and why setting static $inst = null;
works.
这篇关于在PHP5中创建Singleton设计模式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!