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 相关文章推荐
生成sessionid和随机密码的例子
Oct 09 PHP
来自phpguru得Php Cache类源码
Apr 15 PHP
如何使用php绘制在图片上的正余弦曲线
Jun 08 PHP
PHP屏蔽过滤指定关键字的方法
Nov 03 PHP
php使用session二维数组实例
Nov 06 PHP
php数组键值用法实例分析
Feb 27 PHP
PHP5多态性与动态绑定介绍
Apr 03 PHP
在WordPress的文章编辑器中设置默认内容的方法
Dec 29 PHP
php原生导出excel文件的两种方法(推荐)
Nov 19 PHP
使用 laravel sms 构建短信验证码发送校验功能
Nov 06 PHP
laravel中的fillable和guarded属性详解
Oct 23 PHP
PHP设计模式(观察者模式)
Jul 07 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 SQLite类
2009/05/07 PHP
php 格式化数字的时候注意数字的范围
2010/04/13 PHP
PHP使用数组实现队列
2012/02/05 PHP
Thinkphp5.0 框架Model模型简单用法分析
2019/10/11 PHP
JqGrid web打印实现代码
2011/05/31 Javascript
终于解决了IE8不支持数组的indexOf方法
2013/04/03 Javascript
JQuery验证jsp页面属性是否为空(实例代码)
2013/11/08 Javascript
Bootstrap 组件之按钮(二)
2016/05/11 Javascript
ros::spin() 和 ros::spinOnce()函数的区别及详解
2016/10/01 Javascript
Bootstrap基本组件学习笔记之input输入框组(9)
2016/12/07 Javascript
jQuery实现立体式数字滚动条增加效果
2016/12/21 Javascript
在百度搜索结果中去除掉一些网站的资料(通过js控制不让显示)
2017/05/02 Javascript
原生js轮播特效
2017/05/18 Javascript
ReactNative踩坑之配置调试端口的解决方法
2017/07/28 Javascript
使用jQuery实现页面定时弹出广告效果
2017/08/24 jQuery
webpack4 处理SCSS的方法示例
2018/09/03 Javascript
微信小程序实现banner图轮播效果
2020/06/28 Javascript
微信小程序实现二维码签到考勤系统
2020/01/16 Javascript
vuex(vue状态管理)的特殊应用案例分享
2020/03/03 Javascript
[01:02:38]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第二场 1月10日
2021/03/11 DOTA
Python中for循环详解
2014/01/17 Python
对python list 遍历删除的正确方法详解
2018/06/29 Python
matplotlib给子图添加图例的方法
2018/08/03 Python
python实现字符串加密 生成唯一固定长度字符串
2019/03/22 Python
Python基本数据结构之字典类型dict用法分析
2019/06/08 Python
python导入库的具体方法
2020/06/18 Python
浅谈matplotlib默认字体设置探索
2021/02/03 Python
html5 canvas绘制矩形和圆形的实例代码
2016/06/16 HTML / CSS
MADE荷兰:提供原创设计师家具
2018/04/03 全球购物
波兰补充商店:Muscle Power
2018/10/29 全球购物
主要的Ajax框架都有什么
2013/11/14 面试题
院药学专业个人求职信
2013/09/21 职场文书
求职简历的自我评价怎样写好
2013/10/07 职场文书
2019财务管理制度最新范本!
2019/07/09 职场文书
SQL Server实现分页方法介绍
2022/03/16 SQL Server
「租借女友」第2季樱泽墨角色PV&新视觉图公开
2022/03/21 日漫