PHP里的单例类写法实例


Posted in PHP onJune 25, 2015

PHP里的单实例类在进行数据交换,节省内存上还是很有意义的。写个简单例子。
类1,单实例类本身:

class UTIL {
  private static $instance;
  public function get() {
    if (!self::$instance) {
      self::$instance = new UTIL();
    }
    return self::$instance;
  }
  public $number = 10;
  public function change($num) {
    $this->number += $num;
  }
  public function getNum() {
    return $this->number;
  }
}

类2,使用前述单实例类的应用类:

class SINGLEA {
  private $numInst;
  function __construct() {
    $this->numInst = UTIL::get();
  }
  public function change($num) {
    $this->numInst->change($num);
  }
  public function getNum() {
    return $this->numInst->getNum();
  }
}

类3,同类2:

class SINGLEB {
  private $numInst;
  function __construct() {
    $this->numInst = UTIL::get();
  }
  public function change($num) {
    $this->numInst->change($num);
  }
  public function getNum() {
    return $this->numInst->getNum();
  }
}

最后是调用的地方:

$instA = new SINGLEA();
$instA->change(100);
var_dump('SINGLEA CHANGED: ');
var_dump($instA->getNum());
$instB = new SINGLEB();
$instB->change(-510);
var_dump('SINGLEB CHANGED: ');
var_dump($instB->getNum());

最后的显示结果:

string'SINGLEA CHANGED: ' (length=17)
int110
string'SINGLEB CHANGED: ' (length=17)
int-400
PHP 相关文章推荐
第六节--访问属性和方法
Nov 16 PHP
PHP取进制余数函数代码
Jan 19 PHP
php 注释规范
Mar 29 PHP
php中sql注入漏洞示例 sql注入漏洞修复
Jan 24 PHP
php 过滤英文标点符号及过滤中文标点符号代码
Jun 12 PHP
php类中的各种拦截器用法分析
Nov 03 PHP
PHP随机生成唯一HASH值自定义函数
Apr 20 PHP
PHP实现简单数字分页效果
Jul 26 PHP
php基于openssl的rsa加密解密示例
Jul 11 PHP
PHP中多线程的两个实现方法
Oct 14 PHP
Cookie跨域问题解决方案代码示例
Nov 24 PHP
php+laravel 扫码二维码签到功能
May 15 PHP
PHP合并数组+号和array_merge的区别
Jun 25 #PHP
PHP数组与对象之间使用递归实现转换的方法
Jun 24 #PHP
php计算多维数组中所有值总和的方法
Jun 24 #PHP
jquery获取多个checkbox的值异步提交给php的方法
Jun 24 #PHP
PHP将Excel导入数据库及数据库数据导出至Excel的方法
Jun 24 #PHP
php异常处理方法实例汇总
Jun 24 #PHP
php数组索引与键值操作技巧实例分析
Jun 24 #PHP
You might like
PHP经典面试题集锦
2015/03/19 PHP
动态载入/删除/更新外部 JavaScript/Css 文件的代码
2010/07/03 Javascript
如何通过javascript操作web控件的自定义属性
2013/11/25 Javascript
一个css与js结合的下拉菜单支持主流浏览器
2014/10/08 Javascript
javascript引用赋值(地址传值)用法实例
2015/01/13 Javascript
jQuery搜索同辈元素方法
2015/02/10 Javascript
js实现仿Discuz文本框弹出层效果
2015/08/13 Javascript
JavaScript实现的选择排序算法实例分析
2017/04/14 Javascript
微信小程序后台解密用户数据实例详解
2017/06/28 Javascript
Nodejs中的JWT和Session的使用
2018/08/21 NodeJs
Vue2.5学习笔记之如何在项目中使用和配置Vue
2018/09/26 Javascript
javascript中call()、apply()的区别
2019/03/21 Javascript
uni-app之APP和小程序微信授权方法
2019/05/09 Javascript
jquery插件开发模式实例详解
2019/07/20 jQuery
javascript设计模式 ? 模板方法模式原理与用法实例分析
2020/04/23 Javascript
[57:24]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python中operator模块的操作符使用示例总结
2016/06/28 Python
python数据结构之链表详解
2017/09/12 Python
python得到qq句柄,并显示在前台的方法
2018/10/14 Python
Pycharm 设置默认头的图文教程
2019/01/17 Python
python3 requests库文件上传与下载实现详解
2019/08/22 Python
Python如何使用内置库matplotlib绘制折线图
2020/02/24 Python
Pycharm在指定目录下生成文件和删除文件的实现
2020/12/28 Python
html5 Canvas画图教程(11)—使用lineTo/arc/bezierCurveTo画椭圆形
2013/01/09 HTML / CSS
Paradigit比利时电脑卖场:购买笔记本、电脑、平板和外围设备
2016/11/28 全球购物
澳大利亚最大的网上油画销售画廊:Direct Art Australia
2018/04/15 全球购物
职工趣味运动会方案
2014/02/10 职场文书
优秀毕业生求职信
2014/06/05 职场文书
纪律教育学习月活动总结
2014/08/27 职场文书
高中生旷课检讨书
2014/10/08 职场文书
公司股东出资证明书
2014/11/01 职场文书
2016年圣诞节寄语(一句话)
2015/12/07 职场文书
Vue项目中如何封装axios(统一管理http请求)
2021/05/02 Vue.js
手把手教你用SpringBoot将文件打包成zip存放或导出
2021/06/11 Java/Android
Mysql中where与on的区别及何时使用详析
2021/08/04 MySQL
用python基于appium模块开发一个自动收取能量的小助手
2021/09/25 Python