首页 > 网站 > 建站经验 > 正文

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

2024-04-25 20:43:06
字体:
来源:转载
供稿:网友

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

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