php单例模式实现(对象只被创建一次)

2015-01-24信息快讯网

这是我在php面试题中遇到的一道试题,单例模式按字面来看就是某一个类只有一个实例,这样做的好处还是很大的,比如说数据库的连接,我们只需要实例化一次,不需要每次都去new了,这样极大的降低了资源的耗费

单例类至少拥有以下三种公共元素:

    必须拥有一个构造函数,并且必须被标记为private。
    拥有一个保存类的实例的静态成员变量。
    拥有一个访问这个实例的公共的静态方法

具体使用方面,我在下面php实例中注释的很清楚:

<?php
 /**
  * by www.phpddt.com
  */
 class Mysql{
  //该属性用来保存实例
  private static $conn;
  //构造函数为private,防止创建对象
  private function __construct(){
   $this->conn = mysql_connect('localhost','root','');
  }
  //创建一个用来实例化对象的方法
  public static function getInstance(){
   if(!(self::$conn instanceof self)){
    self::$conn = new self;
   }
   return self::$conn;
  }
  //防止对象被复制
  public function __clone(){
   trigger_error('Clone is not allowed !');
  }

 }
 //只能这样取得实例,不能new 和 clone
 $mysql = Mysql::getInstance();
?>

国外十大最流行的PHP框架排名
php字符串截取的简单方法
解析:php调用MsSQL存储过程使用内置RETVAL获取过程中的return值
php调用MySQL存储过程的方法集合(推荐)
解决php使用异步调用获取数据时出现(错误c00ce56e导致此项操作无法完成)
基于PHP创建Cookie数组的详解
php设计模式之单例、多例设计模式的应用分析
浅析php面向对象public private protected 访问修饰符
关于Sphinx创建全文检索的索引介绍
解析PHP将对象转换成数组的方法(兼容多维数组类型)
深入理解:XML与对象的序列化与反序列化
php创建基本身份认证站点的方法详解
深入分析使用mysql_fetch_object()以对象的形式返回查询结果
鸡肋的PHP单例模式应用详解
深入分析php之面向对象
基于php设计模式中单例模式的应用分析
PHPMailer使用教程(PHPMailer发送邮件实例分析)
利用php实现禁用IE和火狐的缓存问题
php自动给文章加关键词链接的函数代码
PHP文章按日期(月日)SQL归档语句
PHP以及MYSQL日期比较方法
有道搜索和IP138的IP的API接口(PHP应用)
PHP面向对象――访问修饰符介绍
对象失去焦点时自己动提交数据的实现代码
PHP类与对象中的private访问控制的疑问
PHP面向对象学习笔记之二 生成对象的设计模式
PHP面向对象学习笔记之一 基础概念
PHP最常用的2种设计模式工厂模式和单例模式介绍
分享一个PHP数据流应用的简单例子
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装(win+linux)
php递归创建和删除文件夹的代码小结
PHP中创建空文件的代码[file_put_contents vs touch]
在PHP中利用wsdl创建标准webservice的实现代码
PHP操作文件类的函数代码(文件和文件夹创建,复制,移动和删除)
php设计模式 Singleton(单例模式)
©2014-2024 dbsqp.com