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怎样调用MSSQL的存储过程
Oct 09 PHP
延长phpmyadmin登录时间的方法
Feb 06 PHP
php中突破基于HTTP_REFERER的防盗链措施(stream_context_create)
Mar 29 PHP
PHP数据类型的总结分析
Jun 13 PHP
php连接Access数据库错误及解决方法
Jun 20 PHP
php中实现xml与mysql数据相互转换的方法
Dec 25 PHP
PHP生成压缩文件实例
Feb 07 PHP
Thinkphp 中 distinct 的用法解析
Dec 14 PHP
PHP使用Redis替代文件存储Session的方法
Feb 15 PHP
关于PHP虚拟主机概念及如何选择稳定的PHP虚拟主机
Nov 20 PHP
Laravel 解决composer相关操作提示php相关异常的问题
Oct 23 PHP
TP5框架实现上传多张图片的方法分析
Mar 29 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 彩色文字实现代码
2009/06/29 PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
2014/10/30 PHP
将FCKeditor导入PHP+SMARTY的实现方法
2015/01/15 PHP
PHP检测用户是否关闭浏览器的方法
2016/02/14 PHP
Android App中DrawerLayout抽屉效果的菜单编写实例
2016/03/21 PHP
Thinkphp自定义生成缩略图尺寸的方法
2019/08/05 PHP
不同浏览器的怪癖小结
2010/07/11 Javascript
JavaScript内核之基本概念
2011/10/21 Javascript
js使用eval解析json(js中使用json)
2014/01/17 Javascript
jQuery根据ID获取input、checkbox、radio、select的示例
2014/08/11 Javascript
jQuery源码解读之hasClass()方法分析
2015/02/20 Javascript
谈谈javascript中使用连等赋值操作带来的问题
2015/11/26 Javascript
基于JavaScript实现树形下拉框
2016/08/10 Javascript
动态JavaScript所造成一些你不知道的危害
2016/09/25 Javascript
js中json处理总结之JSON.parse
2016/10/14 Javascript
详解js的事件代理(委托)
2016/12/22 Javascript
JavaScript中利用for循环遍历数组
2017/01/15 Javascript
常用jQuery选择器汇总
2017/02/02 Javascript
JavaScript两个变量交换值的实现方法
2017/03/01 Javascript
jquery+css实现侧边导航栏效果
2017/06/12 jQuery
vue2.0在table中实现全选和反选的示例代码
2017/11/04 Javascript
Python中使用装饰器来优化尾递归的示例
2016/06/18 Python
python 文件查找及内容匹配方法
2018/10/25 Python
python3 map函数和filter函数详解
2019/08/26 Python
Pytorch 实现focal_loss 多类别和二分类示例
2020/01/14 Python
python 已知三条边求三角形的角度案例
2020/04/12 Python
Python importlib动态导入模块实现代码
2020/04/16 Python
详解如何在PyCharm控制台中输出彩色文字和背景
2020/08/17 Python
python开发入门——set的使用
2020/09/03 Python
Darphin迪梵官网: 来自巴黎,植物和精油调制的护肤品牌
2016/10/11 全球购物
美国高档百货Nordstrom的折扣店:Nordstrom Rack
2017/11/13 全球购物
Ajxa常见问题都有哪些
2014/03/26 面试题
2015年社区精神文明工作总结
2015/05/26 职场文书
Vue的生命周期一起来看看
2022/02/24 Vue.js
Python尝试实现蒙特卡罗模拟期权定价
2022/04/21 Python
ant design charts 获取后端接口数据展示
2022/05/25 Javascript