,,php反射类ReflectionClass用法分析
这篇文章主要介绍了服务器端编程语言(专业超文本预处理器的缩写)反射类反射类用法,结合实例形式较为详细的分析了服务器端编程语言(专业超文本预处理器的缩写)反射类的概念、功能与具体使用方法,需要的朋友可以参考下
本文实例讲述了服务器端编程语言(专业超文本预处理器的缩写)反射类反射类用法分享给大家供大家参考,具体如下:
先来看一段代码:
/**
* @name PHP反射API -利用反射技术实现的插件系统架构
* @作者:PHPCQ .计算机输出缩微胶片
*/
界面Iplugin
{
公共静态
函数getName();
}
函数查找插件()
{
$ plugins=array();
foreach(get _ declared _ classes()as $ class)
{
$ reflection class=新的反射类($ class);
if($反射类-实现接口(' I插件'))
{
$ plugins[]=$ reflection类;
}
}
返回$插件
}
函数计算菜单()
{
$ menu=array();
foreach(findPlugins() as $plugin)
{
if($ plugin-has方法(' getMenuItems '))
{
$ reflection method=$ plugin-get方法(' getMenuItems ');
if ($reflectionMethod - isStatic())
{
$ items=$ reflection方法-invoke(null);
}
其他
{
$插件实例=$插件-新实例();
$ items=$ reflection方法-invoke($ pluginInstance);
}
$menu=array_merge($menu,$ items);
}
}
返回$菜单
}
函数计算文章()
{
$ articles=array();
foreach(findPlugins() as $plugin)
{
if($ plugin-has方法(' get articles '))
{
$ reflection method=$ plugin-get method(' get articles ');
if ($reflectionMethod - isStatic())
{
$ items=$ reflection方法-invoke(null);
}
其他
{
$插件实例=$插件-新实例();
$ items=$ reflection方法-invoke($ pluginInstance);
}
$ articles=array _ merge($ articles,$ items);
}
}
返回$文章
}
require _ once('插件PHP’);
$ menu=compute menu();
$ articles=computeArticles();
print _ r($ menu);
print _ r($ articles);
plugin.php代码如下:
?服务器端编程语言(专业超文本预处理器的缩写)
MycoolPugin类实现Iplugin
{
公共静态
函数getName()
{
返回”my coolplugin”;
}
公共静态
函数getMenuItems()
{
返回数组(数组(' description '=' MycoolPlugin ',' link '='/MycoolPlugin '));
}
公共静态
函数getArticles()
{
返回数组(array(' path '='/MycoolPlugin ',' title'='这真是一篇很酷的文章,'文本'=xxxxx
xxxx));
}
}
上述代码是服务器端编程语言(专业超文本预处理器的缩写)反射类的一个应用。
什么是服务器端编程语言(专业超文本预处理器的缩写)反射类,顾名思义,可以理解为一个类的映射。
举个例子:
岩藻糖类{ //定义一个类
静电
函数ec() {
回声我是一个类;
}
}
$ class=新反射类(' fuc ');//建立岩藻糖这个类的反射类
至于$class这反射类里有什么东东,可以查看手册,这里不详解了
$ fuc=$ class-new instance();//相当于实例化岩藻糖类
$ fuc-EC();//执行岩藻糖里的方法欧共体
/*最后输出:我是一个类*/
其中还有一些更高级的用法
$ EC=$ class-get方法(' EC ');//获取岩藻糖类中的欧共体方法
$ fuc=$ class-new instance();//实例化
$ EC-invoke($ fuc);//执行欧共体方法
上面的过程很熟悉吧。其实和调用对象的方法类似
只不过这里是反着来的,方法在前,对象在后
补充:这里推荐一款本站的服务器端编程语言(专业超文本预处理器的缩写)代码在线格式化工具,可以方便读者对网上压缩的服务器端编程语言(专业超文本预处理器的缩写)格式化代码后进行阅读,方便实用!
服务器端编程语言(专业超文本预处理器的缩写)代码在线格式化美化工具:
http://tools.jb51.net/code/phpformat
更多关于服务器端编程语言(专业超文本预处理器的缩写)相关内容感兴趣的读者可查看本站专题: 《PHP数组(Array)操作技巧大全》 、 《php排序算法总结》 、 《PHP常用遍历算法与技巧总结》 、 《PHP数据结构与算法教程》 、 《php程序设计算法总结》 、 《PHP数学运算技巧总结》 、 《php正则表达式用法总结》 、 《PHP运算与运算符用法总结》 、 《php字符串(string)用法总结》 及《php常见数据库操作技巧汇总》
希望本文所述对大家服务器端编程语言(专业超文本预处理器的缩写)程序设计有所帮助。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。