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
手把手教你使用DedeCms V3的在线采集图文教程
Apr 03 PHP
php下载文件的代码示例
Jun 29 PHP
关于更改Zend Studio/Eclipse代码风格主题的介绍
Jun 23 PHP
curl实现站外采集的方法和技巧
Jan 31 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(一)
Jun 23 PHP
Zend Framework教程之模型Model用法简单实例
Mar 04 PHP
PHP实现冒泡排序的简单实例
May 26 PHP
php实现在新浪云中使用imagick生成缩略图并上传的方法
Sep 26 PHP
php批量删除操作(数据访问)
May 23 PHP
PHP中迭代器的简单实现及Yii框架中的迭代器实现方法示例
Apr 26 PHP
浅谈PHP中的那些魔术常量
Dec 02 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
先进的自动咖啡技术,真的可以取代咖啡师吗?
2021/03/06 冲泡冲煮
apache php mysql开发环境安装教程
2016/07/28 PHP
PHP仿微信多图片预览上传实例代码
2016/09/13 PHP
jquery json 实例代码
2010/12/02 Javascript
基于jquery的当鼠标滚轮到最底端继续加载新数据思路分享(多用于微博、空间、论坛 )
2011/10/10 Javascript
flash调用js中的方法,让js传递变量给flash的办法及思路
2013/08/07 Javascript
nodeType属性返回被选节点的节点类型介绍
2013/11/22 Javascript
javascript计时器事件使用详解
2014/01/07 Javascript
浅析javascript操作 cookie对象
2014/12/26 Javascript
jquery实现在网页指定区域显示自定义右键菜单效果
2015/08/25 Javascript
jquery中cookie用法实例详解(获取,存储,删除等)
2016/01/04 Javascript
jQuery实现的浮动层div浏览器居中显示效果
2017/02/03 Javascript
JS实现数组的增删改查操作示例
2018/08/29 Javascript
js实现延迟加载的几种方法详解
2019/01/19 Javascript
vue列表数据发生变化指令没有更新问题及解决方法
2020/01/16 Javascript
vue-router 路由传参用法实例分析
2020/03/06 Javascript
Vue前端判断数据对象是否为空的实例
2020/09/02 Javascript
[02:45]DOTA2英雄敌法师基础教程
2013/11/25 DOTA
Python MySQLdb模块连接操作mysql数据库实例
2015/04/08 Python
使用Python编写类UNIX系统的命令行工具的教程
2015/04/15 Python
Python图像灰度变换及图像数组操作
2016/01/27 Python
如何用Python实现简单的Markdown转换器
2018/07/16 Python
Ubuntu20.04环境安装tensorflow2的方法步骤
2021/01/29 Python
HTML5 Canvas实现平移/放缩/旋转deom示例(附截图)
2013/07/04 HTML / CSS
魔声耳机官方网站:Monster是世界第一品牌的高性能耳机
2016/10/26 全球购物
HEMA英国:荷兰原创设计
2018/08/28 全球购物
上海方立数码笔试题
2013/10/18 面试题
项目申请汇报材料
2014/08/16 职场文书
批评与自我批评范文
2014/10/15 职场文书
幼儿园家长工作总结2015
2015/04/25 职场文书
2015年安置帮教工作总结
2015/05/22 职场文书
企业党建工作总结2015
2015/05/26 职场文书
MySQL锁机制
2021/04/05 MySQL
go语言map与string的相互转换的实现
2021/04/07 Golang
python自动计算图像数据集的RGB均值
2021/06/18 Python
MySQL数据库实验之 触发器和存储过程
2022/06/21 MySQL