php中注册器模式类用法实例分析
本文实例讲述了php中注册器模式类用法。分享给大家供大家参考,具体如下:
注册器读写类
Registry.class.php
<?php
/**
*注册器读写类
*/
classRegistryextendsArrayObject
{
/**
*Registry实例
*
*@varobject
*/
privatestatic$_instance=null;
/**
*取得Registry实例
*
*@note单件模式
*
*@returnobject
*/
publicstaticfunctiongetInstance()
{
if(self::$_instance===null){
self::$_instance=newself();
echo"newregisterobject!";
}
returnself::$_instance;
}
/**
*保存一项内容到注册表中
*
*@paramstring$name索引
*@parammixed$value数据
*
*@returnvoid
*/
publicstaticfunctionset($name,$value)
{
self::getInstance()->offsetSet($name,$value);
}
/**
*取得注册表中某项内容的值
*
*@paramstring$name索引
*
*@returnmixed
*/
publicstaticfunctionget($name)
{
$instance=self::getInstance();
if(!$instance->offsetExists($name)){
returnnull;
}
return$instance->offsetGet($name);
}
/**
*检查一个索引是否存在
*
*@paramstring$name索引
*
*@returnboolean
*/
publicstaticfunctionisRegistered($name)
{
returnself::getInstance()->offsetExists($name);
}
/**
*删除注册表中的指定项
*
*@paramstring$name索引
*
*@returnvoid
*/
publicstaticfunctionremove($name)
{
self::getInstance()->offsetUnset($name);
}
}
需要注册的类
test.class.php
<?php
classTest
{
functionhello()
{
echo"helloworld";
return;
}
}
?>
测试test.php
<?php
//引入相关类
require_once"Registry.class.php";
require_once"test.class.php";
//newaobject
$test=newTest();
//$test->hello();
//注册对象
Registry::set('testclass',$test);
//取出对象
$t=Registry::get('testclass');
//调用对象方法
$t->hello();
?>
希望本文所述对大家php程序设计有所帮助。