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 相关文章推荐
PHP设计聊天室步步通
Oct 09 PHP
PHP中的MYSQL常用函数(php下操作数据库必备)
Sep 12 PHP
PHP笔记之:基于面向对象设计的详解
May 14 PHP
php实现向javascript传递数组的方法
Jul 27 PHP
dvwa+xampp搭建显示乱码的问题及解决方案
Aug 23 PHP
PHP可变函数学习小结
Nov 29 PHP
微信封装的调用微信签名包的类库
Jun 08 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
Dec 21 PHP
PHP排序算法之快速排序(Quick Sort)及其优化算法详解
Apr 21 PHP
PHP中使用mpdf 导出PDF文件的实现方法
Oct 22 PHP
Laravel的Auth验证Token验证使用自定义Redis的例子
Sep 30 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基于自增数据如何生成不重复的随机数示例
2017/05/19 PHP
Jquery绑定事件(bind和live的区别介绍)
2013/08/23 Javascript
在页面中js获取光标/鼠标的坐标及光标的像素坐标
2013/11/11 Javascript
jQuery中each()方法用法实例
2014/12/27 Javascript
js密码强度实时检测代码
2016/03/02 Javascript
Ubuntu 16.04 64位中搭建Node.js开发环境教程
2016/10/19 Javascript
AngularJS中的Promise详细介绍及实例代码
2016/12/13 Javascript
es7学习教程之fetch解决异步嵌套问题的方法示例
2017/07/21 Javascript
详谈构造函数加括号与不加括号的区别
2017/10/26 Javascript
微信小程序获取手机号授权用户登录功能
2017/11/09 Javascript
用 Vue.js 递归组件实现可折叠的树形菜单(demo)
2017/12/25 Javascript
jQuery中元素选择器(element)简单用法示例
2018/05/14 jQuery
Vue传参一箩筐(页面、组件)
2019/04/04 Javascript
js实现弹出框的拖拽效果实例代码详解
2019/04/16 Javascript
[01:14:10]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS Orenda
2014/05/22 DOTA
零基础写python爬虫之爬虫框架Scrapy安装配置
2014/11/06 Python
关于python的list相关知识(推荐)
2017/08/30 Python
python 对key为时间的dict排序方法
2018/10/17 Python
解决django后台样式丢失,css资源加载失败的问题
2019/06/11 Python
python实现ip地址查询经纬度定位详解
2019/08/30 Python
python中通过selenium简单操作及元素定位知识点总结
2019/09/10 Python
基于python模拟bfs和dfs代码实例
2020/11/19 Python
Python实现中英文全文搜索的示例
2020/12/04 Python
来自圣地亚哥的实惠太阳镜:Knockaround
2018/08/27 全球购物
什么是serialVersionUID
2016/03/04 面试题
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
2013/09/18 面试题
小学生自我鉴定
2013/10/12 职场文书
管理心得体会
2013/12/28 职场文书
办公自动化毕业生求职信
2014/03/09 职场文书
旅游市场营销方案
2014/03/09 职场文书
热爱祖国演讲稿
2014/05/04 职场文书
幼儿园师德演讲稿
2014/05/06 职场文书
2015感人爱情寄语
2015/02/26 职场文书
销售开票员岗位职责
2015/04/15 职场文书
公司员工宿舍管理制度
2015/08/07 职场文书
Django开发RESTful API实现增删改查(入门级)
2021/05/10 Python