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 相关文章推荐
phpfans留言版用到的数据操作类和分页类
Jan 04 PHP
关于Appserv无法打开localhost问题的解决方法
Oct 16 PHP
PHP 远程关机实现代码
Nov 10 PHP
ThinkPHP写第一个模块应用
Feb 20 PHP
PHP编码规范的深入探讨
Jun 06 PHP
CURL状态码列表(详细)
Jun 27 PHP
PHP 二维数组根据某个字段排序的具体实现
Jun 03 PHP
php根据某字段对多维数组进行排序的方法
Mar 07 PHP
PHP中创建和验证哈希的简单方法实探
Jul 06 PHP
PHP实现蛇形矩阵,回环矩阵及数字螺旋矩阵的方法分析
May 29 PHP
thinkPHP中钩子的使用方法实例分析
Nov 16 PHP
PHP addAttribute()函数讲解
Feb 03 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 变量未定义等错误的解决方法
2011/01/12 PHP
php基于Redis消息队列实现的消息推送的方法
2018/11/28 PHP
PHP使用CURL实现下载文件功能示例
2019/06/03 PHP
List Information About the Binary Files Used by an Application
2007/06/11 Javascript
js获取单选框或复选框值及操作
2012/12/18 Javascript
Extjs4 GridPanel的主要配置参数详细介绍
2013/04/18 Javascript
Jquery实现自定义tooltip示例代码
2014/02/12 Javascript
用JavaScript实现类似于ListBox功能示例代码
2014/03/09 Javascript
浅谈JavaScript Math和Number对象
2015/01/26 Javascript
js下将金额数字每三位一逗号分隔
2016/02/19 Javascript
jQuery实现圣诞节礼物传送(花式轮播)
2016/12/25 Javascript
js cookie实现记住密码功能
2017/01/17 Javascript
AngularJS 使用ng-repeat报错 [ngRepeat:dupes]
2017/01/19 Javascript
js实现音频控制进度条功能
2017/04/01 Javascript
bootstrap table表格使用方法详解
2017/04/26 Javascript
使用AngularJS编写多选按钮选中时触发指定方法的指令代码详解
2017/07/24 Javascript
js传递数组参数到后台controller的方法
2018/03/29 Javascript
jQuery实现的滑块滑动导航效果示例
2018/06/04 jQuery
layui点击导航栏刷新tab页的示例代码
2018/08/14 Javascript
[03:13]DOTA2-DPC中国联赛1月25日Recap集锦
2021/03/11 DOTA
使用PDB模式调试Python程序介绍
2015/04/05 Python
python模块导入的细节详解
2018/12/10 Python
python实时检测键盘输入函数的示例
2019/07/17 Python
python中dict使用方法详解
2019/07/17 Python
用python实现英文字母和相应序数转换的方法
2019/09/18 Python
Python读写csv文件流程及异常解决
2020/10/20 Python
CSS3动画特效在活动页中的应用
2020/01/21 HTML / CSS
HTML5轻松实现全屏视频背景的示例
2018/04/23 HTML / CSS
HTML5 Canvas 实现K线图的示例代码
2019/12/23 HTML / CSS
葡萄牙鞋子品牌:Fair
2016/12/10 全球购物
Windows和Linux动态库应用异同
2016/04/17 面试题
如果让你测试一台高速激光打印机,你都会进行哪些测试
2012/12/04 面试题
终止劳动合同通知书
2015/04/16 职场文书
2015年母亲节活动策划方案
2015/05/04 职场文书
MySQL连表查询分组去重的实现示例
2021/07/01 MySQL
简述Java中throw-throws异常抛出
2021/08/07 Java/Android