• PHP 开发 APP 接口 学习笔记与总结


    单例模式

    单例模式三大原则:

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

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

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

    单例模式(参见 PHP 单例模式代码片段):

    <?php
    /*
     * 单例模式
     */
    class DB{
        static private $_instance;
        private function __construct(){
        }
    
        static public function getInstance(){
            if(!self::$_instance instanceof self){
                self::$_instance = new self();
            }
            return self::$_instance;
        }
    }

    单例模式连接数据库:

     1 <?php
     2 /*
     3  * 单例模式连接数据库
     4  */
     5 class DB{
     6     static private $_instance;    //非public的类的实例的静态成员变量
     7     static private $_connectSource;    //连接数据库返回的资源句柄
     8     private $_dbConfig = array(
     9         'host'=>'127.0.0.1',
    10         'username'=>'root',
    11         'pwd'=>'',
    12         'database'=>'chat'
    13     );
    14 
    15     private function __construct(){    //非public 的构造函数
    16     }
    17 
    18     static public function getInstance(){    //访问实例的公共静态方法
    19         if(!self::$_instance instanceof self){
    20             self::$_instance = new self();
    21         }
    22         return self::$_instance;
    23     }
    24 
    25     public function connect(){
    26         if(!self::$_connectSource){
    27             //连接mysql服务
    28             self::$_connectSource = mysql_connect($this->_dbConfig['host'],$this->_dbConfig['username'],$this->_dbConfig['pwd']);
    29             if(!self::$_connectSource){
    30                 die('mysql connect error'.mysql_error());
    31             }
    32             //选择数据库
    33             mysql_select_db($this->_dbConfig['database'],self::$_connectSource);
    34             //设置字符集
    35             mysql_query('set names "UTF8"',self::$_connectSource);
    36         }
    37         return self::$_connectSource; //返回资源
    38     }
    39 }
    40 
    41 $connect = DB::getInstance()->connect();
    42 var_dump($connect);
    43 
    44 $sql = 'select * from messages';
    45 $res = mysql_query($sql,$connect);
    46 $num = mysql_num_rows($res);
    47 var_dump($num);

    页面输出:

    resource(3, mysql link)

    int 2

  • 相关阅读:
    性能优化与使用Block实现数据回传(3)
    封装思想和抽取(2)
    磁盘缓存的计算与清理(1)
    滑动返回的延伸(全局滑动返回功能)
    滑动返回功能被覆盖的解决思路
    OC之类与对象
    OC之OC与C的比较
    OC之知识储备篇
    C语言之总结3
    C语言总结2
  • 原文地址:https://www.cnblogs.com/dee0912/p/4354608.html
Copyright © 2020-2023  润新知