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实现与ASP Banner组件相似的类
Oct 09 PHP
推荐php模板技术[转]
Jan 04 PHP
浅析php中抽象类和接口的概念以及区别
Jun 27 PHP
PHP实现格式化文件数据大小显示的方法
Jan 03 PHP
php使用parse_url和parse_str解析URL
Feb 22 PHP
用php来限制每个ip每天浏览页面数量的实现思路
Feb 24 PHP
typecho插件编写教程(六):调用接口
May 28 PHP
Zend Framework开发入门经典教程
Mar 23 PHP
php实现生成code128条形码的方法详解
Jul 19 PHP
yii2中关于加密解密的那些事儿
Jun 12 PHP
php微信分享到朋友圈、QQ、朋友、微博
Feb 18 PHP
php实现简易计算器
Aug 28 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
phpmyadmin操作流程
2006/10/09 PHP
php面向对象全攻略 (十二) 抽象方法和抽象类
2009/09/30 PHP
在windows平台上构建自己的PHP实现方法(仅适用于php5.2)
2013/07/05 PHP
PHP session_start()问题解疑(详细介绍)
2013/07/05 PHP
php常用的url处理函数总结
2014/11/19 PHP
详解new function(){}和function(){}() 区别分析
2008/03/22 Javascript
jquery中获取select选中值的代码
2011/06/27 Javascript
jQuery EasyUI API 中文文档 - ComboTree组合树
2011/10/11 Javascript
JavaScript中的无阻塞加载性能优化方案
2014/10/10 Javascript
JavaScript通过this变量快速找出用户选中radio按钮的方法
2015/03/23 Javascript
原生js和jquery实现图片轮播特效
2015/04/23 Javascript
wangEditor编辑器失去焦点后仍然可以在原位置插入图片分析
2015/05/06 Javascript
自动完成的搜索框javascript实现
2016/02/26 Javascript
深入理解JS中的substr和substring
2016/04/26 Javascript
ECMAScript6 新特性范例大全
2017/03/24 Javascript
vue2.0中goods选购栏滚动算法的实现代码
2017/05/17 Javascript
BootStrap 动态表单效果
2017/06/02 Javascript
微信小程序getPhoneNumber获取用户手机号
2017/09/29 Javascript
vue-cli 3.x 配置Axios(proxyTable)跨域代理方法
2018/09/19 Javascript
LayUI switch 开关监听 获取属性值、更改状态的方法
2019/09/21 Javascript
Python读写Excel文件的实例
2013/11/01 Python
python2与python3中关于对NaN类型数据的判断和转换方法
2018/10/30 Python
python 生成图形验证码的方法示例
2018/11/11 Python
python3.4爬虫demo
2019/01/22 Python
自学python的建议和周期预算
2019/01/30 Python
Python DataFrame一列拆成多列以及一行拆成多行
2019/08/06 Python
Python有参函数使用代码实例
2020/01/06 Python
Python numpy多维数组实现原理详解
2020/03/10 Python
PythonPC客户端自动化实现原理(pywinauto)
2020/05/28 Python
完美解决ARIMA模型中plot_acf画不出图的问题
2020/06/04 Python
绘画设计学生的个人自我评价
2013/09/20 职场文书
省三好学生申请材料
2014/01/22 职场文书
通信工程专业求职信
2014/06/04 职场文书
干部作风建设心得体会
2014/10/22 职场文书
pytest进阶教程之fixture函数详解
2021/03/29 Python
2022年显卡天梯图(6月更新)
2022/06/17 数码科技