45fan.com - 路饭网

搜索: 您的位置主页 > 电脑频道 > 编程代码 > 阅读资讯:怎么样在php中使用注册器模式?

怎么样在php中使用注册器模式?

2016-07-06 15:04:09 来源:www.45fan.com 【

怎么样在php中使用注册器模式?

本文实例讲述了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程序设计有所帮助。


本文地址:http://www.45fan.com/bcdm/56293.html
Tags: PHP 模式 注册
编辑:路饭网
推广内容
推荐阅读
热门推荐
推荐文章
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部