php中注册器模式类用法实例分析


Posted in PHP onNovember 03, 2015

本文实例讲述了php中注册器模式类用法。分享给大家供大家参考,具体如下:

注册器读写类
Registry.class.php

<?php
/** 
 * 注册器读写类 
 */
class Registry extends ArrayObject
{
  /** 
   * Registry实例
   *
   * @var object 
   */
  private static $_instance = null;
  /**
   * 取得Registry实例
   * 
   * @note 单件模式
   * 
   * @return object
   */
  public static function getInstance()
  {
    if (self::$_instance === null) {
      self::$_instance = new self();
      echo "new register object!";
    }
    return self::$_instance;
  }
  /**
   * 保存一项内容到注册表中
   * 
   * @param string $name 索引
   * @param mixed $value 数据
   * 
   * @return void
   */
  public static function set($name, $value)
  {
    self::getInstance()->offsetSet($name, $value);
  }
  /**
   * 取得注册表中某项内容的值
   * 
   * @param string $name 索引
   * 
   * @return mixed
   */
  public static function get($name)
  {
    $instance = self::getInstance();
    if (!$instance->offsetExists($name)) {
      return null;
    }
    return $instance->offsetGet($name);
  }
  /**
   * 检查一个索引是否存在 
   * 
   * @param string $name 索引
   * 
   * @return boolean
   */
  public static function isRegistered($name)
  {
    return self::getInstance()->offsetExists($name);
  }
  /**
   * 删除注册表中的指定项
   * 
   * @param string $name 索引
   * 
   * @return void
   */
  public static function remove($name)
  {
    self::getInstance()->offsetUnset($name);
  }
}

需要注册的类
 
test.class.php

<?php
class Test
{
   function hello()
   {
    echo "hello world";
    return;
   }
} 
?>

测试 test.php

<?php
//引入相关类
require_once "Registry.class.php";
require_once "test.class.php";
//new a object
$test=new Test();
//$test->hello();
//注册对象
Registry::set('testclass',$test);
//取出对象
$t = Registry::get('testclass');
//调用对象方法
$t->hello();
?>

希望本文所述对大家php程序设计有所帮助。

PHP 相关文章推荐
一个简易需要注册的留言版程序
Oct 09 PHP
优化PHP程序的方法小结
Feb 23 PHP
分享下页面关键字抓取www.icbase.com站点代码(带asp.net参数的)
Jan 30 PHP
PHP创建文件,并向文件中写入数据,覆盖,追加的实现代码
Mar 25 PHP
PHP如何实现跨域
May 30 PHP
功能强大的PHP POST提交数据类
Jul 15 PHP
php常用字符串String函数实例总结【转换,替换,计算,截取,加密】
Dec 07 PHP
PHP+原生态ajax实现的省市联动功能详解
Aug 15 PHP
基于PHP实现微信小程序客服消息功能
Aug 12 PHP
php实现的表单验证类完整示例
Aug 13 PHP
使用laravel和ECharts实现折线图效果的例子
Oct 09 PHP
laravel实现上传图片的两种方式小结
Oct 12 PHP
php实现zip文件解压操作
Nov 03 #PHP
thinkphp如何获取客户端IP
Nov 03 #PHP
php去除二维数组的重复项方法
Nov 03 #PHP
php在数据库抽象层简单使用PDO的方法
Nov 03 #PHP
smarty简单应用实例
Nov 03 #PHP
详解PHP+AJAX无刷新分页实现方法
Nov 03 #PHP
php获取远程文件的内容和大小
Nov 03 #PHP
You might like
PHP的栏目导航程序
2006/10/09 PHP
让PHP支持页面回退的两种方法[转]
2007/02/14 PHP
PHP is_dir() 判断给定文件名是否是一个目录
2010/05/10 PHP
PHP的MVC模式实现原理分析(一相简单的MVC框架范例)
2014/04/29 PHP
IE之动态添加DOM节点触发window.resize事件
2010/07/27 Javascript
JS特殊函数(Function()构造函数、函数直接量)区别介绍
2013/05/19 Javascript
Js制作简单弹出层DIV在页面居中 中间显示遮罩的具体方法
2013/08/08 Javascript
setTimeout自动触发一个js的方法
2014/01/15 Javascript
JS 排序输出实现table行号自增前端动态生成的tr
2014/08/13 Javascript
jQuery实现感应鼠标动画效果自动伸长的输入框实例
2015/02/24 Javascript
jQuery实现的淡入淡出二级菜单效果代码
2015/09/15 Javascript
Node.js读取文件内容示例
2017/03/07 Javascript
Angular.js中angular-ui-router的简单实践
2017/07/18 Javascript
BootStrap模态框和select2合用时input无法获取焦点的解决方法
2017/09/01 Javascript
nodejs中express入门和基础知识点学习
2018/09/13 NodeJs
JS中min函数实例讲解
2019/02/18 Javascript
微信小程序自定义头部导航栏(组件化)
2019/11/15 Javascript
vue键盘事件点击事件加native操作
2020/07/27 Javascript
vue-openlayers实现地图坐标弹框效果
2020/09/24 Javascript
[59:59]EG vs IG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[50:22]完美盛典-2018年度红毯走秀
2018/12/16 DOTA
python通过BF算法实现关键词匹配的方法
2015/03/13 Python
Python获取系统默认字符编码的方法
2015/06/04 Python
python制作企业邮箱的爆破脚本
2016/10/05 Python
Python爬取十篇新闻统计TF-IDF
2018/01/03 Python
解决Python一行输出不显示的问题
2018/12/03 Python
Numpy ndarray 多维数组对象的使用
2021/02/10 Python
HTML5 Canvas如何实现纹理填充与描边(Fill And Stroke)
2013/07/15 HTML / CSS
美国艺术和工艺品商店:Hobby Lobby
2020/12/09 全球购物
MIKI HOUSE美国官方网上商店:日本领先的婴儿和儿童高级时装品牌
2020/06/21 全球购物
Expedia瑞典官网:预订度假屋、酒店、汽车租赁、机票等
2021/01/23 全球购物
部门年终奖分配方案
2014/05/07 职场文书
关于拾金不昧的感谢信(五篇)
2019/10/18 职场文书
MySQL外键约束(FOREIGN KEY)案例讲解
2021/08/23 MySQL
CentOS下安装Jenkins的完整步骤
2022/04/07 Servers
Python 视频画质增强
2022/04/28 Python