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类
Apr 09 PHP
PHP学习笔记之二 php入门知识
Jan 12 PHP
浅析Apache中RewriteCond规则参数的详细介绍
Jun 30 PHP
合并ThinkPHP配置文件以消除代码冗余的实现方法
Jul 22 PHP
PHP7.0版本备注
Jul 23 PHP
php微信开发之自定义菜单实现
Nov 18 PHP
PHP 二维关联数组根据其中一个字段排序(推荐)
Apr 04 PHP
php面向对象的用户登录身份验证
Jun 08 PHP
PHP排序算法之堆排序(Heap Sort)实例详解
Apr 21 PHP
imagettftext() 失效,不起作用
Mar 09 PHP
php随机生成验证码,php随机生成数字,php随机生成数字加字母!
Apr 01 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
PHP5.0对象模型探索之抽象方法和抽象类
2006/09/05 PHP
PHP教程之PHP中shell脚本的使用方法分享
2012/02/23 PHP
PHP读取目录树的实现方法分析
2019/03/22 PHP
jquery等宽输出文字插件使用介绍
2013/09/18 Javascript
jQuery截取指定长度字符串代码
2014/08/21 Javascript
jQuery遍历json中多个map的方法
2015/02/12 Javascript
JavaScript中数据结构与算法(二):队列
2015/06/19 Javascript
javascript数组遍历的方法实例分析
2016/09/13 Javascript
浅析如何利用JavaScript进行语音识别
2016/10/27 Javascript
Vue.js 2.0中select级联下拉框实例
2017/03/06 Javascript
gulp解决跨域的配置文件问题
2017/06/08 Javascript
JavaScript与Java正则表达式写法的区别介绍
2017/08/15 Javascript
详解vue渲染函数render的使用
2017/12/12 Javascript
vue实现简单瀑布流布局
2020/05/28 Javascript
怎么理解wx.navigateTo的events参数使用详情
2020/05/18 Javascript
微信小程序调用wx.getImageInfo遇到的坑解决
2020/05/31 Javascript
javascript实现前端成语点击验证
2020/06/24 Javascript
[01:59]翻天覆地,因你而变,7.20版本地图更新速览
2018/11/24 DOTA
[02:16]完美世界DOTA2联赛PWL S3 集锦第三期
2020/12/21 DOTA
处理Python中的URLError异常的方法
2015/04/30 Python
浅谈解除装饰器作用(python3新增)
2018/10/15 Python
Python3.5实现的三级菜单功能示例
2019/03/25 Python
python flask web服务实现更换默认端口和IP的方法
2019/07/26 Python
Python获取当前脚本文件夹(Script)的绝对路径方法代码
2019/08/27 Python
python tkinter组件使用详解
2019/09/16 Python
python 使用建议与技巧分享(四)
2020/08/18 Python
套娃式文件夹如何通过Python批量处理
2020/08/23 Python
css3实现椭圆轨迹旋转的示例代码
2018/10/29 HTML / CSS
FOREO斐珞尔官方旗舰店:LUNA露娜洁面仪
2018/03/11 全球购物
德国户外商店:eXXpozed
2020/07/25 全球购物
JavaScript实现页面动态验证码的实现示例
2021/03/23 Javascript
高中生毕业自我鉴定范文
2013/12/22 职场文书
网络编辑职责
2014/03/01 职场文书
2014年销售工作总结与计划
2014/12/01 职场文书
2016年寒假社会实践活动心得体会
2015/10/09 职场文书
python处理json数据文件
2022/04/11 Python