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 相关文章推荐
set_include_path在win和linux下的区别
Jan 10 PHP
php gd2 上传图片/文字水印/图片水印/等比例缩略图/实现代码
May 15 PHP
php防注入及开发安全详细解析
Aug 09 PHP
10 个经典PHP函数
Oct 17 PHP
PHP判断是否有Get参数的方法
May 05 PHP
图解找出PHP配置文件php.ini的路径的方法
Aug 20 PHP
php中session定期自动清理的方法
Nov 12 PHP
PHP MPDF中文乱码的解决方式
Dec 08 PHP
PHP获取网页所有连接的方法(附demo源码下载)
Mar 30 PHP
基于win2003虚拟机中apache服务器的访问
Aug 01 PHP
PHP通过bypass disable functions执行系统命令的方法汇总
May 02 PHP
PHP强制转化的形式整理
May 22 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 将excel导入mysql
2009/11/09 PHP
php购物网站支付paypal使用方法
2010/11/28 PHP
浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)(日常整理)
2015/10/26 PHP
初学JavaScript_03(ExtJs Grid的简单使用)
2008/10/02 Javascript
getComputedStyle与currentStyle获取样式(style/class)
2013/03/19 Javascript
JS版元素周期表实现方法
2015/08/05 Javascript
AngularJS进行性能调优的7个建议
2015/12/28 Javascript
JS当前页面登录注册框,固定DIV,底层阴影的实例代码
2016/09/29 Javascript
vue实现图书管理demo详解
2017/10/17 Javascript
nodejs操作mongodb的填删改查模块的制作及引入实例
2018/01/02 NodeJs
基于Fixed定位的框选功能的实现代码
2019/05/13 Javascript
JS回调函数 callback的理解与使用案例分析
2019/09/09 Javascript
Vue仿百度搜索功能
2020/12/28 Vue.js
Python比较文件夹比另一同名文件夹多出的文件并复制出来的方法
2015/03/05 Python
Python编程实现数学运算求一元二次方程的实根算法示例
2017/04/02 Python
python实现m3u8格式转换为mp4视频格式
2018/02/28 Python
浅谈tensorflow中几个随机函数的用法
2018/07/27 Python
Python字符串的一些操作方法总结
2019/06/10 Python
PyCharm-错误-找不到指定文件python.exe的解决方法
2019/07/01 Python
python Django 创建应用过程图示详解
2019/07/29 Python
python根据时间获取周数代码实例
2019/09/30 Python
python opencv图片编码为h264文件的实例
2019/12/12 Python
tornado+celery的简单使用详解
2019/12/21 Python
详解HTML5 Canvas标签及基本使用
2020/01/10 HTML / CSS
介绍一下Java中的static关键字
2012/05/12 面试题
电信营业员自我评价分享
2014/01/17 职场文书
中文教师求职信
2014/02/22 职场文书
《花瓣飘香》教学反思
2014/04/15 职场文书
迁徙的鸟观后感
2015/06/09 职场文书
太空授课观后感
2015/06/17 职场文书
某某店铺的开业庆典主持词范本
2019/11/25 职场文书
导游词之安徽醉翁亭
2020/01/10 职场文书
MySQL 慢查询日志深入理解
2021/04/22 MySQL
Golang 正则匹配效率详解
2021/04/25 Golang
python调试工具Birdseye的使用教程
2021/05/25 Python
python爬取网页版QQ空间,生成各类图表
2021/06/02 Python