06 php 单例模式

本文详细介绍了数据库连接实例化中的单例模式应用,包括构造函数、实例存储和公共访问方法,并通过PHP代码实例展示了如何实现单例模式以确保数据库连接的唯一性与高效管理。
一:单例模式的三大原则

(1)构造函数需要标记为非public(防止外部使用new操作符创建对象),单例类不能在其他类中实例化,只能被自身实例化。

(2)拥有一个保存类的实例的静态成员变量$_instance

 (3)拥有一个访问这个实例的公共静态的方法

二:实现代码

<?php
class Db { static private $_instance; static private $_connectSource; #连接数据库常量 private $_dbConfig = array( 'host' => '127.0.0.1', 'user' => 'root', 'password' => '', 'database' => 'video', ); private function __construct() { } static public function getInstance() { #判断这个变量是否存在 if(!(self::$_instance instanceof self)) { self::$_instance = new self(); } return self::$_instance; } #连接数据库 public function connect() { if(!self::$_connectSource) { self::$_connectSource = @mysql_connect($this->_dbConfig['host'], $this->_dbConfig['user'], $this->_dbConfig['password']); if(!self::$_connectSource) { throw new Exception('mysql connect error ' . mysql_error()); //die('mysql connect error' . mysql_error()); } mysql_select_db($this->_dbConfig['database'], self::$_connectSource); mysql_query("set names UTF8", self::$_connectSource); } return self::$_connectSource; } } /*$connect = Db::getInstance()->connect(); $sql = "select * from video"; $result = mysql_query($sql, $connect); echo mysql_num_rows($result); var_dump($result);*/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值