A5下载 - 努力做内容最丰富最安全的下载站!

A5站长下载站

当前位置:A5下载 > 源码技巧 > 其它源码教程 > php中注册器模式类用法实例分析

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

时间:2015-11-07 09:38作者:fang人气:60

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

标签php,注册,模式,用法,实例分析,本文,实例,讲述了,ph

相关下载

查看所有评论+

网友评论

网友
您的评论需要经过审核才能显示

公众号