• 技术文章 >后端开发 >php教程

    PHP设计模式之单例模式原理与实现方法分析php技巧

    jacklovejacklove2018-06-26 17:19:09原创773
    这篇文章主要介绍了PHP设计模式之单例模式原理与实现方法,简单介绍了单例模式的概念、功能、组成并结合实例形式分析了php定义与使用单例模式的相关操作技巧,需要的朋友可以参考下

    本文实例讲述了PHP设计模式之单例模式原理与实现方法。分享给大家供大家参考,具体如下:

    一、什么是单例模式

    作为对象的创建模式,单例模式确保某一个类只有一个实例,并且对外提供这个全局实例的访问入口。它不会创建实例副本,而是会向单例类内部存储的实例返回一个引用。

    二、PHP单例模式三要素

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

    2. 构造函数和克隆函数必须声明为私有的,防止外部程序创建或复制实例副本。

    3. 必须提供一个访问这个实例的公共静态方法,从而返回唯一实例的一个引用。

    三、为什么使用单例模式

    使用单例模式的好处很大,以数据库操作为例。若不采用单例模式,当程序中出现大量数据库操作时,每次都要执行new操作,每次都会消耗大量的内存资源和系统资源,而且每次打开和关闭数据库连接都是对数据库的一种极大考验和浪费。使用了单例模式,只需要实例化一次,不需要每次都执行new操作,极大降低了资源的耗费。

    四、单例模式示例

    这里以数据库操作为例

    <?php
    /**
    *  单例模式
    **/
    class Db
    {
      //保存全局实例
      private static $instance;
      //数据库连接句柄
      private $db;
      //数据库连接参数
      const HOSTNAME = "127.0.0.1";
      const USERNAME = "root";
      const PASSWORD = "root";
      const DBNAME = "testdb";
      //私有化构造函数,防止外界实例化对象
      private function __construct()
      {
        $this->db = mysqli_connect(self::HOSTNAME,self::USERNAME,
          self::PASSWORD,self::DBNAME);
      }
      //私有化克隆函数,防止外界克隆对象
      private function __clone()
      {
      }
      //单例访问统一入口
      public static function getInstance()
      {
        if(!(self::$instance instanceof self))
        {
          self::$instance = new self();
        }
        return self::$instance;
      }
      //数据库查询操作
      public function getinfo()
      {
        $sql = "select * from testtb";
        $res = mysqli_query($this->db,$sql);
        while($row = mysqli_fetch_array($res)) {
          echo $row['testcol'] . '<br />';
        }
        mysqli_free_result($res);
      }
    }
    $mysqli = Db::getInstance();
    $mysqli->getinfo();
    ?>

    您可能感兴趣的文章:

    PHP设计模式之原型设计模式原理与用法分析php技巧

    laravel中短信发送验证码的实现方法php实例

    PHP receiveMail实现收邮件功能php实例

    以上就是PHP设计模式之单例模式原理与实现方法分析php技巧的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:PHP设计模式之原型设计模式原理与用法分析php技巧 下一篇:原生php实现excel文件读写的方法分析php技巧
    PHP编程就业班

    相关文章推荐

    • 我28了,还能不能学PHP?• 弄php的iter过来报到• php程序重要是正则协助 很急很• 文件上传,该怎么处理• php 数据能够获取 但没法写入数据库 同一文件另一个表可能写入

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网