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 相关文章推荐
Win2003服务器安全加固设置--进一步提高服务器安全性
May 23 PHP
php session应用实例 登录验证
Mar 16 PHP
PHP 远程文件管理,可以给表格排序,遍历目录,时间排序
Aug 07 PHP
IIS+fastcgi下PHP运行超时问题的解决办法详解
Jun 20 PHP
深入解析fsockopen与pfsockopen的区别
Jul 05 PHP
PHP合并数组+号和array_merge的区别
Jun 25 PHP
PHP错误和异常处理功能模块示例
Nov 12 PHP
PHP长连接实现与使用方法详解
Feb 11 PHP
详细解读php的命名空间(二)
Feb 21 PHP
PHP实现二维数组中的查找算法小结
Jun 09 PHP
PHP上传图片到数据库并显示的实例代码
Dec 20 PHP
KindEditor在php环境下上传图片功能集成的方法示例
Jul 20 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原理之错误抑制与内嵌HTML分析
2011/05/02 PHP
ThinkPHP实现非标准名称数据表快速创建模型的方法
2014/11/29 PHP
PHP中Trait及其应用详解
2017/02/14 PHP
thinkPHP中钩子的使用方法实例分析
2017/11/16 PHP
php实现多站点共用session实现单点登录的方法详解
2019/09/18 PHP
Javascript 获取LI里的内容
2008/12/17 Javascript
javascript prototype,executing,context,closure
2008/12/24 Javascript
javascript实现时间格式输出FormatDate函数
2015/01/13 Javascript
jquery动态添加删除(tr/td)
2015/02/09 Javascript
jQuery.position()方法获取不到值的安全替换方法
2015/03/13 Javascript
js查看一个函数的执行时间实例代码
2015/09/12 Javascript
分享一些常用的jQuery动画事件和动画函数
2015/11/27 Javascript
jquery.cookie实现的客户端购物车操作实例
2015/12/24 Javascript
jquery根据一个值来选中select下的option实例代码
2016/08/29 Javascript
AngularJs入门教程之环境搭建+创建应用示例
2016/11/01 Javascript
微信小程序 后台登录(非微信账号)实例详解
2017/03/31 Javascript
Element DateTimePicker日期时间选择器的使用示例
2020/07/27 Javascript
[00:36]DOTA2勇士令状莱恩声望物品——冥晶之厄展示
2018/05/25 DOTA
python 实现自动远程登陆scp文件实例代码
2017/03/13 Python
Python简单实现socket信息发送与监听功能示例
2018/01/03 Python
python matplotlib绘图,修改坐标轴刻度为文字的实例
2018/05/25 Python
python匹配两个短语之间的字符实例
2018/12/25 Python
python 设置输出图像的像素大小方法
2019/07/04 Python
Python实现爬取并分析电商评论
2020/06/19 Python
Python使用pyexecjs代码案例解析
2020/07/13 Python
python中altair可视化库实例用法
2021/01/26 Python
Html5实现iPhone开机界面示例代码
2013/06/30 HTML / CSS
墨尔本最受欢迎的复古风格品牌:Princess Highway
2018/12/21 全球购物
乡镇党委书记第三阶段个人整改措施
2014/09/16 职场文书
个人整改措施落实情况汇报
2014/10/29 职场文书
离婚协议书格式
2014/11/21 职场文书
管理人员岗位职责
2015/02/14 职场文书
小学语文新课改心得体会
2016/01/22 职场文书
如何写好竞聘报告
2019/04/03 职场文书
Dubbo+zookeeper搭配分布式服务的过程详解
2022/04/03 Java/Android
使用ICOM IC-R9500接收机同时测评十台收音机中波接收性能
2022/05/10 无线电