[toc]
## 舉個例子
> 1950年后, 中國實行一夫一妻制. 愛情具有排他性.
## 代碼示例
```php
<?php
class MyBeautifulGirl {
private static $instance = null;
//私有化構造方法
public function __construct() {
echo "我遇到一個女孩" . PHP_EOL;
}
//私有化克隆方法
private function __clone() {
}
public static function getInstance() {
if (!(self::$instance instanceof MyBeautifulGirl)) {
self::$instance = new MyBeautifulGirl();
}
return self::$instance;
}
}
$lucy = new MyBeautifulGirl();
$lily = new MyBeautifulGirl();
echo $lucy === $lily ? "我的真愛!!" : "我移情別戀了!" . PHP_EOL;
$meimei = MyBeautifulGirl::getInstance();
$kitty = MyBeautifulGirl::getInstance();
echo $meimei === $kitty ? "我的真愛!!" : "我移情別戀了!" . PHP_EOL;
```
```
D:\soft\php72\php.exe D:\project\php_dp\index.php
我遇到一個女孩
我遇到一個女孩
我移情別戀了!
我遇到一個女孩
我的真愛!!
Process finished with exit code 0
```
## 什么是單例模式?
> 確保一個類只有一個實例,并且提供一個訪問它的全局方法。
> 人如果腳踏兩只船,你的生活將會翻船!
> 程序中的部分關鍵類如果有多個實例,將容易使邏輯混亂,程序崩潰!

## 應用場景
1. 你希望這個類只有一個且只能有一個實例;
1. 項目中的一些全局管理類(Manager)可以用單例來實現。