php 单例模式 示例
程序员文章站
2022-07-13 23:34:58
...
// 设计模式: 单例模式
// 作用: 最终只能成功实例化一次对象, 多次实例化还是同一个对象
// 1. 不让用户在外面new -- 封装构造方法 私有的/ 受保护的
// 2. 无法使用构造方法 -- 在类内创建 普通的方法调用构造方法
// 3. 无法使用普通方法 -- 将 普通方法 定义为 静态方法
// 4. 在静态方法内不能用$this -- 在静态方法内 new self
// 5. 多次调用静态方法重复链接 -- 通过 状态标志 判断是否已连接
class mysql
{
// 链接状态
private static $status = null;
private function __construct()
{
echo '成功连接数据库... <br>';
}
public static function getConnect()
{
// 如果$status 是 null, 证明未连接, 则 new self
// 如果$status 不是 null, 证明已连接, 则直接返回 状态
if( is_null(self::$status) ){
self::$status = new self;
}
return self::$status;
}
}
// $a = new mysql; // Fatal error: Uncaught Error: Call to private mysql::__construct()
// $a = new mysql;
// $a = new mysql;
$a = mysql::getConnect();
$b = mysql::getConnect();
echo '<hr>';
if($a == $b){
echo 'yes';
}else{
echo 'no';
}
上一篇: 设计模式---单例模式示例代码
下一篇: Qt之窗口透明,绘画不透明