gpt4 book ai didi

PHP单例模式详解及实例代码

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章PHP单例模式详解及实例代码由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

PHP单例模式详解 。

单例模式的概念 。

单例模式是指整个应用中某个类只有一个对象实例的设计模式。具体来说,作为对象的创建方式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统全局的提供这个实例。它不会创建实例副本,而是会向单例类内部存储的实例返回一个引用.

单例模式的特点 。

单例模式的主要特点是“三私一公”:

需要一个保存类的唯一实例的私有静态成员变量 。

构造函数必须声明为私有的,防止外部程序new一个对象从而失去单例的意义 。

克隆函数必须声明为私有的,防止对象被克隆 。

必须提供一个访问这个实例的公共静态方法(通常命名为getInstance),从而返回唯一实例的一个引用.

使用单例模式的原因及场景 。

在PHP的大多数应用中都会存在大量的数据库操作,如果不用单例模式,那每次都要new操作,但是每次new都会消耗大量的系统资源和内存资源,而且每次打开和关闭数据库都是对数据库的一种极大考验和浪费。所以单例模式经常用在数据库操作类中.

同样,如果系统中需要有一个类来全局控制某些配置信息,那使用单例模式可以很方便的实现.

PHP单例模式实现 。

下面是一个PHP单例模式实现数据库操作类的框架 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
  class Db{
  const DB_HOST= 'localhost' ;
  const DB_NAME= '' ;
  const DB_USER= '' ;
  const DB_PWD= '' ;
  private $_db ;
  //保存实例的私有静态变量
  private static $_instance ;
  //构造函数和克隆函数都声明为私有的
  private function __construct(){
  //$this->_db=mysql_connect();
  }
  private function __clone(){
  //实现
  }
  //访问实例的公共静态方法
  public static function getInstance(){
  if (!(self:: $_instance instanceof self)){
  self:: $_instance = new self();
  }
  //或者
  if (self:: $_instance ===null){
  self:: $_instance = new Db();
  }
  return self:: $_instance ;
  }
  public function fetchAll(){
  //实现
  }
  public function fetchRow(){
  //实现
  }
  }
  //类外部获取实例的引用
  $db =Db::getInstance();
?>

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持! 。

最后此篇关于PHP单例模式详解及实例代码的文章就讲到这里了,如果你想了解更多关于PHP单例模式详解及实例代码的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com