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,不用COM,生成excel文件
Oct 09 PHP
PHP 各种排序算法实现代码
Aug 20 PHP
网站用php实现paypal整合方法
Nov 28 PHP
php压缩多个CSS为一个css的代码并缓存
Apr 21 PHP
PHP 命令行工具 shell_exec, exec, passthru, system详细使用介绍
Sep 11 PHP
基于PHP对XML的操作详解
Jun 07 PHP
微信扫描二维码登录网站代码示例
Dec 30 PHP
Zend Framework教程之响应对象的封装Zend_Controller_Response实例详解
Mar 07 PHP
PHP CURL与java http使用方法详解
Jan 26 PHP
PHP分页显示的方法分析【附PHP通用分页类】
May 10 PHP
laravel高级的Join语法详解以及使用Join多个条件
Oct 16 PHP
PHP设计模式(三)建造者模式Builder实例详解【创建型】
May 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
PHP4实际应用经验篇(2)
2006/10/09 PHP
PHP中的extract的作用分析
2008/04/09 PHP
PHP数组和explode函数示例总结
2015/05/08 PHP
PHP模糊查询的实现方法(推荐)
2016/09/06 PHP
prototype class详解
2006/09/07 Javascript
jquery CSS选择器笔记
2010/03/29 Javascript
10个基于浏览器的JavaScript调试工具分享
2013/02/07 Javascript
javascript loadScript异步加载脚本示例讲解
2013/11/14 Javascript
用jquery修复在iframe下的页面锚点失效问题
2014/08/22 Javascript
JQuery.Ajax()的data参数类型实例详解
2015/11/20 Javascript
javascript实现滚动效果的数字时钟实例
2016/07/21 Javascript
写jQuery插件时的注意点
2017/02/20 Javascript
JavaScript实现一个带AI的井字棋游戏源码
2018/05/21 Javascript
vue项目webpack中Npm传递参数配置不同域名接口
2018/06/15 Javascript
JS实现将二维数组转为json格式字符串操作示例
2018/07/12 Javascript
Element 默认勾选表格 toggleRowSelection的实现
2019/09/04 Javascript
layui富文本编辑器前端无法取值的解决方法
2019/09/18 Javascript
微信小程序开发(一):服务器获取数据列表渲染操作示例
2020/06/01 Javascript
浅谈Ant Design Pro 菜单自定义 icon
2020/11/17 Javascript
前端如何实现动画过渡效果
2021/02/05 Javascript
Ubuntu16.04/树莓派Python3+opencv配置教程(分享)
2018/04/02 Python
Python解决八皇后问题示例
2018/04/22 Python
使用python采集脚本之家电子书资源并自动下载到本地的实例脚本
2018/10/23 Python
Django使用AJAX调用自己写的API接口的方法
2019/03/06 Python
Python3安装psycopy2以及遇到问题解决方法
2019/07/03 Python
python操作yaml说明
2020/04/08 Python
opencv 图像轮廓的实现示例
2020/07/08 Python
移动端html5 meta标签的神奇功效
2016/01/06 HTML / CSS
使用canvas实现黑客帝国数字雨效果
2020/01/02 HTML / CSS
Lookfantastic瑞典:英国知名美妆购物网站
2018/04/06 全球购物
欧洲领先的技术商店:eibmarkt.com
2019/05/10 全球购物
编写一个类体现构造,公有,私有方法,静态,私有变量
2013/08/10 面试题
机械绘图员岗位职责
2013/11/19 职场文书
经理管理专业毕业自荐书范文
2014/02/12 职场文书
报效祖国演讲稿
2014/09/15 职场文书
python 进阶学习之python装饰器小结
2021/09/04 Python