一个人如何使用PHP5类创建Singleton类?
/** * 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 instantiate it * */ private function __construct() { } }
使用方法:
$fact = UserFactory::Instance(); $fact2 = UserFactory::Instance();
$fact == $fact2;
但:
$fact = new UserFactory()
引发错误。
请参阅http://php.net/manual/zh- CN/language.variables.scope.php#language.variables.scope.static了解静态变量范围以及为什么设置static $inst = null;有效。
static $inst = null;