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 相关文章推荐
PHP.MVC的模板标签系统(三)
Sep 05 PHP
PHP XML error parsing SOAP payload on line 1
Jun 17 PHP
php中计算未知长度的字符串哪个字符出现的次数最多的代码
Aug 14 PHP
PHP session_start()问题解疑(详细介绍)
Jul 05 PHP
thinkphp实现发送邮件密码找回功能实例
Dec 01 PHP
php中heredoc与nowdoc介绍
Dec 25 PHP
php中ob_flush函数和flush函数用法分析
Mar 18 PHP
zen_cart实现支付前生成订单的方法
May 06 PHP
php 解决扫描二维码下载跳转问题
Jan 13 PHP
PHP封装的简单连接MongoDB类示例
Feb 13 PHP
php apache开启跨域模式过程详解
Jul 08 PHP
php文件上传原理与实现方法详解
Dec 20 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中全面阻止SQL注入式攻击分析小结
2012/01/30 PHP
php关联数组快速排序的方法
2015/04/17 PHP
php实现源代码加密的方法
2015/07/11 PHP
实现PHP框架系列文章(6)mysql数据库方法
2016/03/04 PHP
Zend Framework路由器用法实例详解
2016/12/11 PHP
PHP实现Huffman编码/解码的示例代码
2018/04/20 PHP
PHP ADODB生成下拉列表框功能示例
2018/05/29 PHP
B/S开发中常用javaScript技术与代码
2007/03/09 Javascript
javascript十个最常用的自定义函数(中文版)
2009/09/07 Javascript
用js做一个小游戏平台 (一)
2009/12/29 Javascript
jQuery对表单元素的取值和赋值操作代码
2011/05/19 Javascript
jQuery AjaxQueue改进步骤
2011/10/06 Javascript
js实现window.open不被拦截的解决方法汇总
2014/10/30 Javascript
JavaScript中的闭包(Closure)详细介绍
2014/12/30 Javascript
JSON简介以及用法汇总
2016/02/21 Javascript
BootStrap创建响应式导航条实例代码
2016/05/31 Javascript
ReactJs快速入门教程(精华版)
2016/11/28 Javascript
详解React 16 中的异常处理
2017/07/28 Javascript
使用express+multer实现node中的图片上传功能
2018/02/02 Javascript
JavaScript面向对象的程序设计(犯迷糊的小羊)
2018/05/27 Javascript
JavaScript实现读取与输出XML文件数据的方法示例
2018/06/05 Javascript
关于JS模块化的知识点分享
2019/10/16 Javascript
vue cli3 配置proxy代理无效的解决
2019/10/30 Javascript
Node.js API详解之 dns模块用法实例分析
2020/05/15 Javascript
python代码实现逻辑回归logistic原理
2019/08/07 Python
Django url,从一个页面调到另个页面的方法
2019/08/21 Python
python如何使用jt400.jar包代码实例
2019/12/20 Python
python 串口读取+存储+输出处理实例
2019/12/26 Python
HTML5全屏(Fullscreen)API详细介绍
2015/04/24 HTML / CSS
荷兰皇家航空公司中国官网:KLM中国
2017/12/13 全球购物
外贸主管求职简历的自我评价
2013/10/23 职场文书
保卫科工作岗位职责
2014/03/01 职场文书
建筑质检员岗位职责
2015/04/08 职场文书
2016年大学生寒假社会实践心得体会
2015/10/09 职场文书
竞选稿之小学班干部
2019/10/31 职场文书
HTML5页面音频自动播放的实现方式
2021/06/21 HTML / CSS