加入收藏 | 设为首页 | 会员中心 | 我要投稿 鄂州站长网 (https://www.0711zz.com.cn/)- 云通信、区块链、物联平台、操作系统、高性能计算!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php中注册器模式类用法实例分析

发布时间:2022-06-21 09:24:36 所属栏目:PHP教程 来源:互联网
导读:这篇文章主要介绍了php中注册器模式类用法,以实例形式分析了注册器读写类的相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下。 本文实例讲述了php中注册器模式类用法,分享给大家供大家参考,具体如下: 注册器读写类 Registry.class.php ?php /** *
  这篇文章主要介绍了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();
  ?>

(编辑:鄂州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读