zoukankan      html  css  js  c++  java
  • 06 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);*/
  • 相关阅读:
    Android使用sqlliteOpenhelper更改数据库的存储路径放到SD卡上
    递归实现全排列(一)
    poj_1284_原根
    绝对让你理解Android中的Context
    Java Web---登录验证和字符编码过滤器
    ceph理论及部署配置实践
    ceph for openstack快速部署实施
    php set env
    基于本地iso 搭建的本地yum源 安装部署openldap
    ceph rpm foor rhel6
  • 原文地址:https://www.cnblogs.com/hgj123/p/4360263.html
Copyright © 2011-2022 走看看