單例模式(Singleton Pattern)是一種常用的軟件設(shè)計(jì)模式,它確保在一個(gè)類中只存在一個(gè)實(shí)例,且該實(shí)例易于外界訪問,從而防止多個(gè)實(shí)例同時(shí)存在而導(dǎo)致的潛在問題。在 PHP 框架中,單例模式的實(shí)現(xiàn)方式如下:
class Singleton {
private function __construct() {}
}
__clone()
方法設(shè)置為私有。class Singleton {
private function __construct() {}
private function __clone() {}
}
class Singleton {
private static $instance;
private function __construct() {}
private function __clone() {}
}
class Singleton {
private static $instance;
private function __construct() {}
private function __clone() {}
public static function getInstance() {
if (self::$instance === null) {
self::$instance = new Singleton();
}
return self::$instance;
}
}
使用示例:
$singleton1 = Singleton::getInstance();
$singleton2 = Singleton::getInstance();
if ($singleton1 === $singleton2) {
echo "兩個(gè)對(duì)象是相同的實(shí)例";
} else {
echo "兩個(gè)對(duì)象不是相同的實(shí)例";
}
以上代碼會(huì)輸出 “兩個(gè)對(duì)象是相同的實(shí)例”,因?yàn)槲覀兺ㄟ^ Singleton::getInstance()
獲取的是同一個(gè)實(shí)例。這樣就實(shí)現(xiàn)了單例模式在 PHP 框架中的基本實(shí)現(xiàn)。