php设计模式----单例模式

在oop中,一个对象只负责一个特定的任务通常是一种很好的做法。

所有的单例类至少拥有以下三种公共元素。

1. 必须拥有一个构造函数,并且被标记为private。

2. 拥有一个保存类的实例的静态成员变量。

3. 拥有一个访问这个实例的公共的静态方法。

4. 另外,需要创建__clone()方法防止对象被复制(克隆)。

和普通类不同,单例类不能在其他类中直接实例化,只能被自身实例化。要想获得这种效果,__construct()方法必须被标记为private。

复制代码
<?php

    class Database {
         private $_db;
         static $_instance;
         
         private  function __construct()
         {
              $this->_db = pg_connect('dbname=example_db');
         }

          private __clone() {}  

          public static function getInstance(){
               if (! (self::$_instance intanceof self)) {
                    self::$_instance = new self();
               }
               return self::$_instance;
          }

           public function query($sql)
           {
                return pg_query($this->_db,$sql);
           }
    } 
    $db = Database::getInstance();
    $db->query('select * from table');

?>   
复制代码

 

 

posted @   赵治鲁  阅读(178)  评论(1编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2012-03-05 转载:PHP的cURL库功能简介:抓取网页,POST数据及其他
点击右上角即可分享
微信分享提示