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程序设计有所帮助。