亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

寫一個數(shù)據(jù)庫連接的單例模式案例,確保只會產(chǎn)生一個數(shù)據(jù)庫連接對象

Original 2019-04-09 11:25:43 286
abstract:<?php // 寫一個數(shù)據(jù)庫連接的單例模式案例,確保只會產(chǎn)生一個數(shù)據(jù)庫連接對象 class Db { private $dsn = 'mysql:host=127.0.0.1;dbname=php_mysql;charset=utf8'; private $user = 'root
<?php
// 寫一個數(shù)據(jù)庫連接的單例模式案例,確保只會產(chǎn)生一個數(shù)據(jù)庫連接對象
class Db
{
private $dsn = 'mysql:host=127.0.0.1;dbname=php_mysql;charset=utf8';
private $user = 'root';
private $pass = '123456';
// 類的實例化兩種方式,一:new  二:clone
private function __construct(){}
private function __clone(){}
private static $single = null;
// 創(chuàng)建一個外部接口,創(chuàng)建并返回當前類的實例
public static function getPdo()
{
if(is_null(static::$single)){
static::$single = new static();
}
return static::$single;
}
public function getConnect(){
try{
$pdo = new Pdo($this->dsn,$this->user,$this->pass);
print_r('數(shù)據(jù)庫連接成功');
}catch(PDOException $e){
print('數(shù)據(jù)庫連接失敗');
print_r($e->getMessage());
}
}

}
$sin1 = Db::getPdo();
$sin2 = Db::getPdo();
// $sin3 = new Single();
// var_dump($sin3);
echo $sin1 instanceof Db? '是':'不是';
echo '<br>';
echo $sin2 instanceof Db? '是':'不是';
echo '<br>';

echo $sin1 === $sin2 ? '屬于同一個對象':'不屬于同一個對象';
echo '<br>';

$sin1->getConnect();

1、我不知道這個小demo算不算是數(shù)據(jù)庫連接的單例模式,我百度了然后再根據(jù)自己理解寫的。

2、static::$single = new static() 這個寫法我不太理解,這就創(chuàng)建了當前類的一個實例了?


Correcting teacher:天蓬老師Correction time:2019-04-09 11:39:40
Teacher's summary:單例模式, 屬于創(chuàng)建型的設計模式, php的設計模式,與Java幾乎是完全一樣的. static關鍵字, 不僅僅是用來聲明靜態(tài)成員, 還可以用來綁定繼承上下文環(huán)境中的類,這個要好好理解一下

Release Notes

Popular Entries