首页 > 开发 > PHP > 正文

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

2024-05-04 23:40:04
字体:
来源:转载
供稿:网友

这篇文章主要介绍了php中注册器模式类用法,以实例形式分析了注册器读写类的相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了php中注册器模式类用法。分享给大家供大家参考,具体如下:

注册器读写类

Registry.class.php

 

 
  1. <?php 
  2. /**  
  3. * 注册器读写类  
  4. */ 
  5. class Registry extends ArrayObject 
  6. /**  
  7. * Registry实例 
  8. * 
  9. * @var object  
  10. */ 
  11. private static $_instance = null
  12. /** 
  13. * 取得Registry实例 
  14.  
  15. * @note 单件模式 
  16.  
  17. * @return object 
  18. */ 
  19. public static function getInstance() 
  20. if (self::$_instance === null) { 
  21. self::$_instance = new self(); 
  22. echo "new register object!"
  23. return self::$_instance; 
  24. /** 
  25. * 保存一项内容到注册表中 
  26.  
  27. * @param string $name 索引 
  28. * @param mixed $value 数据 
  29.  
  30. * @return void 
  31. */ 
  32. public static function set($name, $value) 
  33. self::getInstance()->offsetSet($name, $value); 
  34. /** 
  35. * 取得注册表中某项内容的值 
  36.  
  37. * @param string $name 索引 
  38.  
  39. * @return mixed 
  40. */ 
  41. public static function get($name) 
  42. $instance = self::getInstance(); 
  43. if (!$instance->offsetExists($name)) { 
  44. return null
  45. return $instance->offsetGet($name); 
  46. /** 
  47. * 检查一个索引是否存在  
  48.  
  49. * @param string $name 索引 
  50.  
  51. * @return boolean 
  52. */ 
  53. public static function isRegistered($name) 
  54. return self::getInstance()->offsetExists($name); 
  55. /** 
  56. * 删除注册表中的指定项 
  57.  
  58. * @param string $name 索引 
  59.  
  60. * @return void 
  61. */ 
  62. public static function remove($name) 
  63. self::getInstance()->offsetUnset($name); 

需要注册的类

test.class.php

 

 
  1. <?php 
  2. class Test 
  3. function hello() 
  4. echo "hello world"
  5. return
  6. }  
  7. ?> 

测试 test.php

 

 
  1. <?php 
  2. //引入相关类 
  3. require_once "Registry.class.php"
  4. require_once "test.class.php"
  5. //new a object 
  6. $test=new Test(); 
  7. //$test->hello(); 
  8. //注册对象 
  9. Registry::set('testclass',$test); 
  10. //取出对象 
  11. $t = Registry::get('testclass'); 
  12. //调用对象方法 
  13. $t->hello(); 
  14. ?> 

希望本文所述对大家php程序设计有所帮助。


注:相关教程知识阅读请移步到PHP教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表