博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP单例模式的实现
阅读量:6441 次
发布时间:2019-06-23

本文共 515 字,大约阅读时间需要 1 分钟。

hot3.png

单例模式的意义在于,很多时候不需要创建重复的实例。

用PHP实现单例模式的原理是,使用一个静态变量存储实例,当遇到重复的“new”操作时,直接返回静态变量中存储的实例。

典型的应用有数据库类,请看代码:

这样就用单例模式实现了一个数据库类,使用下面的代码可以检测:

query();$db2 = DB::getInstance();//证明它们是同一个实例 echo $db === $db2;?>

我们使用了DB::getInstance()来获取实例,因为构造方法被设置成私有,不能直接用new DB()来创建实例。

理由是,只要使用new会重复创建实例。而是用getInstance()会将第一次创建的实例存放在静态变量里,重复利用。

不管使用多少次getInstance()方法,在同一个页面中始终只有一个实例存在,这就是我们想要的结果~

PHP手册中说,如果两个对象有相同的属性和方法,那么下面的语句成立:

$db1 == $db2;

如果两个对象是同一个,那么下面的语句成立:

$db1 === $db2;

 

转载于:https://my.oschina.net/crazymus/blog/517953

你可能感兴趣的文章
C++与Rust操作裸指针的比较
查看>>
如何选择适合自己的编程语言?
查看>>
Android面试整理(附答案)
查看>>
我重仓了BCH
查看>>
谁是中本聪的继承者?BCH重新启用原始“中本聪OP_Codes”
查看>>
年度十佳电商网站设计赏析
查看>>
随手记 iOS 11 适配实践总结
查看>>
Angular Material 攻略 04 Button
查看>>
前端架构之路:数据驱动型组件-HeyUI,一个新型的VUE组件库
查看>>
大数据时代如何使用数据分析来找女朋友?
查看>>
react 写一个预加载表单数据的装饰器
查看>>
Spring Cloud组件完整demo
查看>>
如何打造“好”的社区产品
查看>>
QQ浏览器隐私泄露报告
查看>>
使用腾讯云配置小程序Python开发环境
查看>>
docker -p 时iptables无效问题
查看>>
VueJs 填坑日记之基础概念知识解释
查看>>
RecyclerView 知识梳理(4) ItemDecoration
查看>>
公司没大牛带,需要离职么?
查看>>
Markdown的基础语法
查看>>