PHP单例模式实现数据库连接
PHP单例模式实现数据库连接
一个大笨蛋 发表于3年前
PHP单例模式实现数据库连接
  • 发表于 3年前
  • 阅读 144
  • 收藏 5
  • 点赞 0
  • 评论 2

【腾讯云】买域名送云解析+SSL证书+建站!>>>   

class DB
{
    private $db_config = './config.php';
    private static $_instance;

    private function __construct()
    {
        if (file_exists($this->db_config)) {
            require $this->db_config;
            self::$_instance = new mysqli($db_host, $db_name, $db_passwd);
        } else {
            throw new Exception('not found database configuration file.');
        }
    }
    
    /**
     * 单例方法 用户访问实例的静态方法
     *
     * @return void
     */
    public function getInstance() {
        if (self::$_instance == null) {
            self::$_instance = new self;
        }
        file_put_contents('2.txt', var_export(self::$_instance,true), FILE_APPEND);
        return self::$_instance;
    }

    /**
     * 防止对象被克隆
     *
     * @return void
     */
    private function __clone()
    {
        trigger_error('Clone is not allow!', E_USER_ERROR);
    }
}

试着用单例模式写了一个数据库连接,在执行的时候,发现通过  getInstance()  方法获取到的只是  $db_config  ,并没有获取到实例化后的   mysqli  对象,想请问下,问题出在哪里?

还有哪些地方可以做优化?


标签: php 单例模式
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 8
博文 19
码字总数 4714
评论 (2)
Raynor1
好吧。。其实php里面差不多的。。嗯 。。。即使使用了单例 。。效果也不会有太大的改善。。其实可以放在代码的可读上面 。。
zy643208
网上很多列子,参考参考吧
×
一个大笨蛋
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: