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 相关文章推荐
php4的session功能评述(一)
Oct 09 PHP
用PHP和ACCESS写聊天室(四)
Oct 09 PHP
php imagecreatetruecolor 创建高清和透明图片代码小结
May 15 PHP
php数组的概述及分类与声明代码演示
Feb 26 PHP
PHP变量的定义、可变变量、变量引用、销毁方法
Dec 20 PHP
php实现上传图片生成缩略图示例
Apr 13 PHP
ThinkPHP中的create方法与自动令牌验证实例教程
Aug 22 PHP
PHP原生函数一定好吗?
Dec 08 PHP
php使用curl打开https网站的方法
Jun 17 PHP
php实现短信发送代码
Jul 05 PHP
Thinkphp和onethink实现微信支付插件
Apr 13 PHP
Laravel5.5新特性之友好报错以及展示详解
Aug 13 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
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
2009/04/24 PHP
PHP的error_reporting错误级别变量对照表
2014/07/08 PHP
PHP对象相互引用的内存溢出实例分析
2014/08/28 PHP
PHP预定义变量9大超全局数组用法详解
2016/04/23 PHP
CI框架中redis缓存相关操作文件示例代码
2016/05/17 PHP
PHP生成随机数的方法总结
2018/03/01 PHP
jquery JSON的解析方式
2009/07/25 Javascript
js 自制滚动条的小例子
2013/03/16 Javascript
读取input:file的路径并显示本地图片的方法
2013/09/23 Javascript
javascript随机抽取0-100之间不重复的10个数
2016/02/25 Javascript
使用JavaScript实现点击循环切换图片效果
2017/09/03 Javascript
微信小程序图片选择区域裁剪实现方法
2017/12/02 Javascript
使用koa-log4管理nodeJs日志笔记的使用方法
2018/11/30 NodeJs
vue使用nprogress实现进度条
2019/12/09 Javascript
[08:40]Navi Vs Newbee
2018/06/07 DOTA
[06:07]DOTA2-DPC中国联赛 正赛 Ehome vs VG 选手采访
2021/03/11 DOTA
python实现指定字符串补全空格的方法
2015/04/30 Python
python友情链接检查方法
2015/07/08 Python
python学习笔记之调用eval函数出现invalid syntax错误问题
2015/10/18 Python
python执行使用shell命令方法分享
2017/11/08 Python
Python解析、提取url关键字的实例详解
2018/12/17 Python
使用python对文件中的单词进行提取的方法示例
2018/12/21 Python
Python爬虫headers处理及网络超时问题解决方案
2020/06/19 Python
html5中JavaScript removeChild 删除所有节点
2014/05/16 HTML / CSS
浅谈利用缓存来优化HTML5 Canvas程序的性能
2015/05/12 HTML / CSS
Foot Locker英国官网:美国知名运动产品零售商
2019/02/21 全球购物
Amara德国:家居饰品、设计师品牌和豪华礼品
2019/05/20 全球购物
Kathmandu新西兰官网:新西兰户外运动品牌
2019/07/27 全球购物
说说你所熟悉或听说过的j2ee中的几种常用模式?及对设计模式的一些看法
2012/05/24 面试题
电气工程和自动化自荐信范文
2013/12/25 职场文书
简单英文演讲稿
2014/01/01 职场文书
旷工检讨书1000字
2015/01/01 职场文书
安全教育的主题班会
2015/08/13 职场文书
2016继续教育培训学习心得体会
2016/01/19 职场文书
什么是创业计划书?什么是商业计划书?这里一一解答
2019/07/12 职场文书
MYSQL 无法识别中文的永久解决方法
2021/06/03 MySQL