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 5.0对象模型深度探索之绑定
Sep 05 PHP
php源码加密 仿微盾PHP加密专家(PHPCodeLock)
May 06 PHP
php checkbox复选框值的获取与checkbox默认值输出方法
May 15 PHP
深入理解PHP原理之Session Gc的一个小概率Notice
Apr 12 PHP
php.ini中date.timezone设置分析
Jul 29 PHP
php中的四舍五入函数代码(floor函数、ceil函数、round与intval)
Jul 14 PHP
ThinkPHP自定义函数解决模板标签加减运算的方法
Jul 03 PHP
PHP实现微信网页授权开发教程
Jan 19 PHP
php常用字符串String函数实例总结【转换,替换,计算,截取,加密】
Dec 07 PHP
浅谈PHP中pack、unpack的详细用法
Mar 12 PHP
laravel 操作数据库常用函数的返回值方法
Oct 11 PHP
php使用redis的几种常见操作方式和用法示例
Feb 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
某大型网络公司应聘时的笔试题目附答案
2008/03/27 PHP
用sql命令修改数据表中的一个字段为非空(not null)的语句
2010/06/04 PHP
php通过rmdir删除目录的简单用法
2015/03/18 PHP
php基于session锁防止阻塞请求的方法分析
2017/08/07 PHP
js不是基础的基础
2006/12/24 Javascript
IE的有条件注释判定IE版本详解(附实例代码)
2012/01/04 Javascript
jquery 之 $().hover(func1, funct2)使用方法
2012/06/14 Javascript
用javascript添加控件自定义属性解析
2013/11/25 Javascript
弹出窗口并且此窗口带有半透明的遮罩层效果
2014/03/13 Javascript
对比分析json及XML
2014/11/28 Javascript
javascript实现了照片拖拽点击置顶的照片墙代码
2015/04/03 Javascript
javascript实现表单提交后,提交按钮不可用的方法
2015/04/18 Javascript
使用jQuery判断浏览器滚动条位置的方法
2016/05/30 Javascript
JavaScript从0开始构思表情插件
2016/07/26 Javascript
Html5 js实现手风琴效果
2020/04/17 Javascript
Bootstrap导航简单实现代码
2017/03/06 Javascript
vue拦截器实现统一token,并兼容IE9验证功能
2018/04/26 Javascript
JS实现的全选、全不选及反选功能【案例】
2019/02/19 Javascript
JavaScript enum枚举类型定义及使用方法
2020/05/15 Javascript
antd table按表格里的日期去排序操作
2020/11/17 Javascript
Python获取Linux系统下的本机IP地址代码分享
2014/11/07 Python
Python实现运行其他程序的四种方式实例分析
2017/08/17 Python
python实现人脸识别代码
2017/11/08 Python
win10下tensorflow和matplotlib安装教程
2018/09/19 Python
pycharm中选中一个单词替换所有重复单词的实现方法
2020/11/17 Python
CSS3制作皮卡丘动画壁纸的示例
2020/11/02 HTML / CSS
西班牙最好的在线购买葡萄酒的商店:Vinoseleccion
2019/10/30 全球购物
说说在weblogic中开发消息Bean时的persistent与non-persisten的差别
2013/04/07 面试题
物业电工岗位职责
2013/11/20 职场文书
超市后勤自我鉴定
2014/01/17 职场文书
铣床操作工岗位职责
2014/06/13 职场文书
授权委托书范文
2014/07/31 职场文书
购房协议书范本
2014/10/02 职场文书
费城故事观后感
2015/06/10 职场文书
关于运动会的广播稿
2015/08/19 职场文书
SQL Server内存机制浅探
2022/04/06 SQL Server