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

寫(xiě)一個(gè)數(shù)據(jù)庫(kù)連接的單例模式案例,確保只會(huì)產(chǎn)生一個(gè)數(shù)據(jù)庫(kù)連接對(duì)象

asal 2019-04-09 11:25:43 286
abstrak:<?php // 寫(xiě)一個(gè)數(shù)據(jù)庫(kù)連接的單例模式案例,確保只會(huì)產(chǎn)生一個(gè)數(shù)據(jù)庫(kù)連接對(duì)象 class Db { private $dsn = 'mysql:host=127.0.0.1;dbname=php_mysql;charset=utf8'; private $user = 'root
<?php
// 寫(xiě)一個(gè)數(shù)據(jù)庫(kù)連接的單例模式案例,確保只會(huì)產(chǎn)生一個(gè)數(shù)據(jù)庫(kù)連接對(duì)象
class Db
{
private $dsn = 'mysql:host=127.0.0.1;dbname=php_mysql;charset=utf8';
private $user = 'root';
private $pass = '123456';
// 類(lèi)的實(shí)例化兩種方式,一:new  二:clone
private function __construct(){}
private function __clone(){}
private static $single = null;
// 創(chuàng)建一個(gè)外部接口,創(chuàng)建并返回當(dāng)前類(lèi)的實(shí)例
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ù)庫(kù)連接成功');
}catch(PDOException $e){
print('數(shù)據(jù)庫(kù)連接失敗');
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 ? '屬于同一個(gè)對(duì)象':'不屬于同一個(gè)對(duì)象';
echo '<br>';

$sin1->getConnect();

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

2、static::$single = new static() 這個(gè)寫(xiě)法我不太理解,這就創(chuàng)建了當(dāng)前類(lèi)的一個(gè)實(shí)例了?


Guru membetulkan:天蓬老師Masa pembetulan:2019-04-09 11:39:40
Rumusan guru:?jiǎn)卫J? 屬于創(chuàng)建型的設(shè)計(jì)模式, php的設(shè)計(jì)模式,與Java幾乎是完全一樣的. static關(guān)鍵字, 不僅僅是用來(lái)聲明靜態(tài)成員, 還可以用來(lái)綁定繼承上下文環(huán)境中的類(lèi),這個(gè)要好好理解一下

Nota Keluaran

Penyertaan Popular