您好,登錄后才能下訂單哦!
單例模式是為了防止多次重復實例化,例如數據庫的重復連接,造成資源浪費。
重點是:
1/ 一個類只有一個對象
2/ 類為自行創建,不能通過new來聲明
3/ 用途:在整個系統中統一提供這一個對象。
寫法:
1/ 類中定義一個私有靜態變量
2/ 類中只提供私有的構造函數
3/ 提供一個靜態公有函數用來創建私有對象本身。
4/ 使用__clone防止克隆
<?php
//學習使用單例模式
class Danli
{
private static $db = null;
private static $num = 0;
private function __construct()
{
echo "對象已經構建完成:".self::$num."次\n";
}
public static function getInstance()
{
if(self::$db instanceof self){
echo "已經實例化,不要重復實例\n";
return self::$db;
}else{
self::$num +=1;
return self::$db = new self();
}
}
static function test()
{
echo "調用成功\n";
}
public function __clone()
{
echo "不能克隆哦";
}
}
$d = Danli::getInstance();
$d->test();
$c = Danli::getInstance();
$c->test();
$d= clone $c;
//
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。