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 相关文章推荐
图片存储与浏览一例(Linux+Apache+PHP+MySQL)
Oct 09 PHP
IIS6+PHP5+MySQL5+Zend Optimizer+phpMyAdmin安装配置图文教程 2009年
Jun 08 PHP
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
Apr 18 PHP
php empty()与isset()区别的详细介绍
Jun 17 PHP
php输入数据统一类实例
Feb 23 PHP
php实现二进制和文本相互转换的方法
Apr 18 PHP
PHP编写RESTful接口的方法
Feb 21 PHP
php使用正则验证中文
Apr 06 PHP
php面向对象之反射功能与用法分析
Mar 29 PHP
phpMyAdmin通过密码漏洞留后门文件
Nov 20 PHP
使用laravel和ajax实现整个页面无刷新的操作方法
Oct 03 PHP
laravel框架中控制器的创建和使用方法分析
Nov 23 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
Zend的MVC机制使用分析(一)
2013/05/02 PHP
destoon实现调用当前栏目分类及子分类和三级分类的方法
2014/08/21 PHP
PHPUnit安装及使用示例
2014/10/29 PHP
Zend Framework入门应用实例详解
2016/12/11 PHP
php学习笔记之字符串常见操作总结
2019/07/16 PHP
prototype Element学习笔记(篇一)
2008/10/26 Javascript
javascript的console.log()用法小结
2012/05/31 Javascript
document.createElement()用法及注意事项(ff下不兼容)
2013/03/13 Javascript
jQuery实现点击标题输入详细信息
2013/04/16 Javascript
javascript setinterval 的正确语法如何书写
2014/06/17 Javascript
PhantomJS快速入门教程(服务器端的 JavaScript API 的 WebKit)
2015/08/06 Javascript
使用jQuery处理AJAX请求的基础学习教程
2016/05/10 Javascript
深入理解jQuery事件绑定
2016/06/02 Javascript
微信小程序 picker 组件详解及简单实例
2017/01/10 Javascript
Vue.js实现一个SPA登录页面的过程【推荐】
2017/04/29 Javascript
在iframe中使bootstrap的模态框在父页面弹出问题
2017/08/07 Javascript
详解.vue文件解析的实现
2018/06/11 Javascript
使用vue完成微信公众号网页小记(推荐)
2019/04/28 Javascript
vue中axios实现数据交互与跨域问题
2019/05/12 Javascript
es6 for循环中let和var区别详解
2020/01/12 Javascript
深入浅析golang zap 日志库使用(含文件切割、分级别存储和全局使用等)
2020/02/19 Javascript
javascript实现获取中文汉字拼音首字母
2020/05/19 Javascript
在Django中使用Sitemap的方法讲解
2015/07/22 Python
Python实现excel转sqlite的方法
2017/07/17 Python
python如何让类支持比较运算
2018/03/20 Python
Python并发之多进程的方法实例代码
2018/08/15 Python
python中time库的实例使用方法
2019/10/31 Python
python获得命令行输入的参数的两种方式
2020/11/02 Python
HTML5 progress和meter控件_动力节点Java学院整理
2017/07/06 HTML / CSS
质量在我心中演讲稿
2014/09/02 职场文书
课内比教学心得体会
2014/09/09 职场文书
内勤岗位职责
2015/02/10 职场文书
大学生村官驻村工作心得体会
2016/01/23 职场文书
为什么你写的height:100%不起作用
2021/05/10 HTML / CSS
简单介绍Python的第三方库yaml
2021/06/18 Python
「魔导具师妲莉亚永不妥协~从今天开始的自由职人生活~」1、2卷发售宣传CM公开
2022/03/21 日漫