本文实例讲述了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程序设计有所帮助。
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:)!