一个人如何使用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/en/language.variables.scope.php#language.variables.scope.static以了解静态变量范围以及为何设置static $inst = null;起作用。

关于php - 在PHP5中创建Singleton设计模式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/203336/

10-09 23:55