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 相关文章推荐
ExtJS与PHP、MySQL实现存储的方法
Apr 02 PHP
PHP删除特定数组内容并且重建数组索引的方法.
Mar 25 PHP
php 中英文语言转换类
Sep 07 PHP
php比较多维数组中值的大小排序实现代码
Sep 08 PHP
PHP变量的定义、可变变量、变量引用、销毁方法
Dec 20 PHP
php使用fputcsv()函数csv文件读写数据的方法
Jan 06 PHP
用php代码限制国内IP访问我们网站
Sep 26 PHP
Zend Framework框架教程之Zend_Db_Table_Rowset用法实例分析
Mar 21 PHP
PHP线程的内存回收问题
Jul 08 PHP
laravel 中如何使用ajax和vue总结
Aug 16 PHP
php双层循环(九九乘法表)
Oct 23 PHP
关于Anemometer图形化显示MySQL慢日志的工具搭建及使用的详细介绍
Jul 13 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去除换行(回车换行)的三种方法
2014/03/26 PHP
php判断当前操作系统类型
2015/10/28 PHP
Yii使用DeleteAll连表删除出现报错问题的解决方法
2016/07/14 PHP
微信网页授权(OAuth2.0) PHP 源码简单实现
2016/08/29 PHP
CSS JavaScript 实现菜单功能 改进版
2008/12/09 Javascript
JQuery文本改变触发事件如聚焦事件、失焦事件
2014/01/15 Javascript
JavaScript AJAX之惰性载入函数
2014/08/27 Javascript
jQuery+css实现的切换图片功能代码
2016/01/27 Javascript
jQuery计算文本框字数及限制文本框字数的方法
2016/03/01 Javascript
Struts2+jquery.form.js实现图片与文件上传的方法
2016/05/05 Javascript
手机Web APP如何实现分享多平台功能
2016/08/19 Javascript
实现一个简单的vue无限加载指令方法
2017/01/10 Javascript
Vue.js弹出模态框组件开发的示例代码
2017/07/26 Javascript
ES6新增数据结构WeakSet的用法详解
2017/08/07 Javascript
Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80)
2017/09/18 Javascript
JavaScript实现多叉树的递归遍历和非递归遍历算法操作示例
2018/02/08 Javascript
layui 上传插件 带预览 非自动上传功能的实例(非常实用)
2019/09/23 Javascript
vue实现在v-html的html字符串中绑定事件
2019/10/28 Javascript
浅谈如何优雅处理JavaScript异步错误
2019/11/12 Javascript
[41:12]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.24
2019/09/10 DOTA
python采集百度百科的方法
2015/06/05 Python
Django 拼接两个queryset 或是两个不可以相加的对象实例
2020/03/28 Python
opencv中图像叠加/图像融合/按位操作的实现
2020/04/01 Python
用pandas划分数据集实现训练集和测试集
2020/07/20 Python
用python实现学生管理系统
2020/07/24 Python
一文带你了解Python 四种常见基础爬虫方法介绍
2020/12/04 Python
Julep官网:美容产品和指甲油
2017/02/25 全球购物
比较一下entity bean和session bean
2013/12/27 面试题
个人找工作求职简历的自我评价
2013/10/20 职场文书
新郎父亲婚宴答谢词
2014/01/11 职场文书
创意活动策划书
2014/01/15 职场文书
cf搞笑广告词
2014/03/14 职场文书
贷款承诺书
2015/01/20 职场文书
导游词开场白
2015/01/31 职场文书
重阳节座谈会主持词
2015/07/03 职场文书
初中语文教学随笔
2015/08/15 职场文书