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 相关文章推荐
杏林同学录(六)
Oct 09 PHP
PHP新手上路(十二)
Oct 09 PHP
第一节--面向对象编程
Nov 16 PHP
php 结果集的分页实现代码
Mar 10 PHP
php数组函数序列之in_array() 查找数组值是否存在
Oct 29 PHP
8个必备的PHP功能实例代码
Oct 27 PHP
php循环table实现一行两列显示的方法
Jun 04 PHP
PHP翻页跳转功能实现方法
Nov 30 PHP
PHP错误机制知识汇总
Mar 24 PHP
PHP使用HTML5 FileApi实现Ajax上传文件功能示例
Jul 01 PHP
Laravel框架中缓存的使用方法分析
Sep 06 PHP
浅谈laravel框架与thinkPHP框架的区别
Oct 23 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数组函数序列之array_slice() - 在数组中根据条件取出一段值,并返回
2011/11/07 PHP
Linux下从零开始安装配置Nginx服务器+PHP开发环境
2015/12/21 PHP
javascript 清除输入框中的数据
2009/04/13 Javascript
JavaScript Event学习第二章 Event浏览器兼容性
2010/02/07 Javascript
JavaScript中的细节分析
2012/06/30 Javascript
Jquery easyui 下loaing效果示例代码
2013/08/12 Javascript
JS格式化数字保留两位小数点示例代码
2013/10/15 Javascript
javascript获取隐藏元素(display:none)的高度和宽度的方法
2014/06/06 Javascript
JQuery Tips相关(1)----关于$.Ready()
2014/08/14 Javascript
5个可以帮你理解JavaScript核心闭包和作用域的小例子
2014/10/08 Javascript
为什么JS中eval处理JSON数据要加括号
2015/04/13 Javascript
详解JavaScript中getFullYear()方法的使用
2015/06/10 Javascript
利用jquery制作滚动到指定位置触发动画
2016/03/26 Javascript
Javascript中内建函数reduce的应用详解
2016/10/20 Javascript
JavaScript获取键盘按键的键码(参照表)
2017/01/10 Javascript
vue3.0 CLI - 2.3 - 组件 home.vue 中学习指令和绑定
2018/09/14 Javascript
[57:59]完美世界DOTA2联赛循环赛 Ink Ice vs LBZS BO2第一场 11.05
2020/11/05 DOTA
Python中的生成器和yield详细介绍
2015/01/09 Python
Python卸载模块的方法汇总
2016/06/07 Python
基于Python3 逗号代码 和 字符图网格(详谈)
2017/06/22 Python
python实现淘宝秒杀聚划算抢购自动提醒源码
2020/06/23 Python
python和pygame实现简单俄罗斯方块游戏
2021/02/19 Python
PyCharm设置护眼背景色的方法
2018/10/29 Python
举例讲解Python常用模块
2019/03/08 Python
Python实现EXCEL表格的排序功能示例
2019/06/25 Python
windows上安装python3教程以及环境变量配置详解
2019/07/18 Python
Pytorch 实现冻结指定卷积层的参数
2020/01/06 Python
python相对企业语言优势在哪
2020/06/12 Python
使用CSS3设计地图上的雷达定位提示效果
2016/04/05 HTML / CSS
俄罗斯卫浴采暖及维修用品超级市场:Dkrussia
2020/05/12 全球购物
大学专科生推荐信范文
2013/11/23 职场文书
公司财务自我评价分享
2013/12/17 职场文书
优秀班集体事迹材料
2014/12/25 职场文书
满月酒邀请函
2015/01/30 职场文书
女性健康讲座主持词
2015/07/04 职场文书
Python学习之时间包使用教程详解
2022/03/21 Python