• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
车车大人
博客园    首页    新随笔    联系   管理     

单例模式封装一个数据库调用的类

<?php
class DataBases{
    public $host;
    public $user;
    public $password;
    public $dbname;
    static private $obj = null;

    private function __construct($host,$user,$password,$dbname)
    {
        $this->host = $host;
        $this->user = $user;
        $this->password = $password;
        $this->dbname = $dbname;
    }

    static function ConnectData(){
        if(self::$obj){
            return self::$obj;
        }else{
            self::$obj = new self('127.0.0.1','root','root','mfour');
            return self::$obj;
        }
    }
}

$res = Databases::ConnectData();
print_r($res);

其实单例模式就相当于是自己调用自己,自己实例化自己!

工厂模式就相当于 房东--中介--租房者  这三者之间的关系一样,不管房东怎么变化,我只要找到中介就可以了,类似于封装,避免了一处修改,多页面修改的现象!

 

 

 

------------------------------------------------------------------------------------------------------------------------------------------------------------

 

案例2:

<?php
//创建一个数据库类
class Db{
    private $host;
    private $user;
    private $pwd;
    private $dbname;

    private static $db;

    //第一步:声明一个私有的构造
    private function __construct($host,$user,$pwd,$dbname)
    {
        $this->host = $host;
        $this->user = $user;
        $this->pwd = $pwd;
        $this->dbname = $dbname;
    }

    public static function NewSelf(){
        if(self::$db){
            return self::$db;
        }else{
            self::$db = new self('127.0.0.1','root','root','monththree');
            return self::$db;
        }
    }

    //链接数据库
    public function connect(){
        $link = mysqli_connect($this->host,$this->user,$this->pwd,$this->dbname);
        mysqli_query($link,'set names utf8');
        return $link;
    }

    //封装一个入库的方法
    public function AddData(){
        //拿到link
        $link = $this->connect();
    }
}

$res = Db::NewSelf();
$link = $res->connect();
print_r($link);

 

通往牛逼的路上,在意的只有远方!
posted @ 2018-04-18 11:13  车车大人  阅读(455)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3