[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
```
## 什么是单例模式?
> 确保一个类只有一个实例,并且提供一个访问它的全局方法。
> 人如果脚踏两只船,你的生活将会翻船!
> 程序中的部分关键类如果有多个实例,将容易使逻辑混乱,程序崩溃!
![](https://box.kancloud.cn/e3bc6bd7fc2f808768dddc7176a63a6c_231x187.png)
## 应用场景
1. 你希望这个类只有一个且只能有一个实例;
1. 项目中的一些全局管理类(Manager)可以用单例来实现。