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 相关文章推荐
中英文字符串翻转函数
Dec 09 PHP
php 修改zen-cart下单和付款流程以防止漏单
Mar 08 PHP
php 智能404跳转代码,适合换域名没改变目录的网站
Jun 04 PHP
PHP操作数组相关函数
Feb 03 PHP
用PHP写的基于Memcache的Queue实现代码
Nov 27 PHP
PHP中$_FILES的使用方法及注意事项说明
Feb 14 PHP
PHP实现抓取HTTPS内容
Dec 01 PHP
php根据用户语言跳转相应网页
Nov 04 PHP
php添加数据到xml文件的简单例子
Sep 08 PHP
php+ajax实现异步上传文件或图片功能
Jul 18 PHP
php7性能提升的原因详解
Oct 13 PHP
PHP与Web页面交互操作实例分析
Jun 02 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/11/24 PHP
PHP Document 代码注释规范
2009/04/13 PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装最快的解决办法
2010/08/01 PHP
PHP垃圾回收机制引用计数器概念分析
2013/06/24 PHP
两种php去除二维数组的重复项方法
2015/11/04 PHP
php中的explode()函数实例介绍
2019/01/18 PHP
Prototype源码浅析 String部分(四)之补充
2012/01/16 Javascript
将list转换为json失败的原因
2013/12/17 Javascript
jquery获取复选框checkbox的值实现方法
2016/05/30 Javascript
Bootstrap 表单验证formValidation 实现远程验证功能
2017/05/17 Javascript
React Js 微信禁止复制链接分享禁止隐藏右上角菜单功能
2017/05/26 Javascript
JS数组Reduce方法功能与用法实例详解
2020/04/29 Javascript
解决echarts 一条柱状图显示两个值,类似进度条的问题
2020/07/20 Javascript
iview实现动态表单和自定义验证时间段重叠
2021/01/10 Javascript
python控制台英汉汉英电子词典
2020/04/23 Python
Python操作RabbitMQ服务器实现消息队列的路由功能
2016/06/29 Python
Python正则捕获操作示例
2017/08/19 Python
Django实现分页功能
2018/07/02 Python
Python做智能家居温湿度报警系统
2018/09/25 Python
Python3 执行系统命令并获取实时回显功能
2019/07/09 Python
python SocketServer源码深入解读
2019/09/17 Python
python如何处理程序无法打开
2020/06/16 Python
python 爬虫网页登陆的简单实现
2020/11/30 Python
物流毕业生个人的自我评价
2014/02/13 职场文书
人事部经理岗位职责
2014/03/07 职场文书
论文指导教师评语
2014/04/28 职场文书
药品营销专业毕业生自荐信
2014/07/02 职场文书
工作求职信
2014/07/04 职场文书
业务员工作态度散漫检讨书
2014/11/02 职场文书
财务部会计岗位职责
2015/02/03 职场文书
电影焦裕禄观后感
2015/06/09 职场文书
于丹论语心得观后感
2015/06/15 职场文书
《小摄影师》教学反思
2016/02/18 职场文书
python设置 matplotlib 正确显示中文的四种方式
2021/05/10 Python
MySQL 存储过程的优缺点分析
2021/05/20 MySQL
div与span之间的区别与使用介绍
2021/12/06 HTML / CSS