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

来源:5-2 [PDO] 数据库操作类之构造函数

叶师傅

2015-09-15 21:00

有没有大神能够解释一下

写回答 关注

2回答

  • 关于淡淡的淡淡的
    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-18 12:36:45

    共 1 条回复 >

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

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

PDO—数据库抽象层

本教程主要通过实战演练深入剖析PDO以加深理解

30043 学习 · 396 问题

查看课程

相似问题