首页 > 开发 > PHP > 正文

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

2024-05-04 22:04:02
字体:
来源:转载
供稿:网友

注册模式很容易理解,它经常在PHP框架中使用,在一些较大的PHP框架中,一些常见的类实例将在初始化期间放入寄存器中,现在就让错新技术频道小编给我们分析php.html="" tags="">php.html" target="_blank">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

<?phpclass 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中注册器模式类用法实例,有没有其他你感兴趣的知识呢?错新技术频道应有尽有。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表