PHP中的单例模式是什么

发布时间:2021-08-11 19:47:55 作者:chen
来源:亿速云 阅读:108

这篇文章主要介绍“PHP中的单例模式是什么”,在日常操作中,相信很多人在PHP中的单例模式是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP中的单例模式是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

  单例模式

  定义:简单的说,整个应用一次访问流程中只有一个实例对象的设计模式。

  我对单例模式的理解就是可以减少new的操作,因为new操作的时候会消耗内存,如果进行大量的new操作,就会消耗大量的内存。

  例如:

  class abc {

  }

  $a = new abc;

  $b = new abc;

  $c = new abc;

  $d = new abc;

  echo "内存初始: ".memory_get_usage()."B\n";

  echo '< pre>';

  var_dump($a);

  echo '< /pre>';

  echo "内存使用: ".memory_get_usage()."B\n";

  echo '< pre>';var_dump($b);

  echo '< /pre>';

  echo "内存使用: ".memory_get_usage()."B\n";

  echo '< pre>';var_dump($c);

  echo '< /pre>';

  echo "内存使用: ".memory_get_usage()."B\n";

  echo '< pre>';var_dump($d);

  echo '< /pre>';

  echo "内存使用: ".memory_get_usage()."B\n";

  echo "峰值: ".memory_get_peak_usage()."B\n"

  输出结果:

  内存初始:126352B

  object(abc)#1 (0){

  }

  内存使用:126392B

  object(abc)#2 (0){

  }

  内存使用:126440B

  object(abc)#3 (0){

  }

  内存使用:126488B

  object(abc)#4 (0){

  }

  内存使用:126536B 峰值:127040B

  这里每一次new 操作就会增加内存的占用。而使用单例模式则不会造成这种情况。

  单例模式的要点

  1.某个类只能有一个实例。

  2.必须自行创建这个实例。

  3.必须自行向整个系统提供这个实例。

  下面是创建一个单例类的示例:

  /** * @purpose: 创建一个单例类 * Class Single */

  class Single {

  /** * @var Object 保存类实例的静态成员变量 */

  private static $_instance;

  /** * Single constructor. 私有的构造方法 */

  private function __construct(){

  echo 'This is a Constructed method;'; }

  /** * @purpose: 创建私有__clone方法防止对象被复制克隆 */

  private function __clone(){ }

  /** * @return Single|Object 单例方法,用于访问实例的公共的静态方法 */

  public static function getInstance(){

  if(!(self::$_instance instanceof self)){

  self::$_instance = new self; }

  return self::$_instance; }

  }

  现在我们进行实例化输出:

  This is a Constructed method;

  内存初始:129456B

  object(abc)#1 (0){

  }

  内存初始:129504B

  object(abc)#1 (0){

  }

  内存初始:129504B

  object(abc)#1 (0){

  }

  内存初始:129504B

  object(abc)#1 (0){

  }

  内存初始:129504B

  这里可以看出就算多次实例化内存也没有进行增长;

  单例模式的用处

  1.单例模式可以应用在数据库的操作类上。

  2.单例模式可应用在网站的计数器上。

  3.应用程序的日志应用,一般都使用单例模式实现,这一般是由于共享的日志文件一直处于打开状态,因为只能有一个实例去操作,否则内容不好追加。

  4.Web应用的配置对象的读取,一般也应用单例模式,这个是由于配置文件是共享的资源。

到此,关于“PHP中的单例模式是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

推荐阅读:
  1. PHP的单例模式是什么?单例模式怎么用?
  2. JavaScript中单例模式是什么

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php

上一篇:PHP处理数据时提高响应速度的方法

下一篇:怎么用php正则去掉多余的标签

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》