问答详情
源自:5-2 [PDO] 数据库操作类之构造函数

请问哪一段代码保证了不管new多少次都只有一个数据库连接(即所谓的单例模式)

有没有大神能够解释一下

提问者:叶师傅 2015-09-15 21:00

个回答

  • 关于淡淡的淡淡的
    2015-09-15 21:16:39
    已采纳

    class User { 
        //静态变量保存全局实例
        private static $_instance = null;
        //私有构造函数,防止外界实例化对象
        private function __construct() {
        }    
        //静态方法,单例统一访问入口
        static public function getInstance() {
            if (is_null ( self::$_instance ) || isset ( self::$_instance )) {
                self::$_instance = new self ();
            }
            return self::$_instance;
        }
    }

    使用单例模式可以避免大量的new操作。因为每一次new操作都会消耗系统和内存的资源。

  • 关于淡淡的淡淡的
    2015-09-15 21:20:48

    首先将构造函数私有化(也就是无法实例化对象),必须 $user = User::getInstance()  来实例化对象,如果之前实例化过就直接return