本文实例讲述了PHP反射类ReflectionClass用法。分享给大家供大家参考,具体如下:
先来看一段代码:
implementsInterface('Iplugin'))
{
$plugins[] = $reflectionClass;
}
}
return $plugins;
}
function computeMenu()
{
$menu = array();
foreach(findPlugins() as $plugin)
{
if ($plugin - > hasMethod('getMenuItems'))
{
$reflectionMethod = $plugin - > getMethod('getMenuItems');
if ($reflectionMethod - > isStatic())
{
$items = $reflectionMethod - > invoke(null);
}
else
{
$pluginInstance = $plugin - > newInstance();
$items = $reflectionMethod - > invoke($pluginInstance);
}
$menu = array_merge($menu,$items);
}
}
return $menu;
}
function computeArticles()
{
$articles = array();
foreach(findPlugins() as $plugin)
{
if ($plugin - > hasMethod('getArticles'))
{
$reflectionMethod = $plugin - > getMethod('getArticles');
if ($reflectionMethod - > isStatic())
{
$items = $reflectionMethod - > invoke(null);
}
else
{
$pluginInstance = $plugin - > newInstance();
$items = $reflectionMethod - > invoke($pluginInstance);
}
$articles = array_merge($articles,$items);
}
}
return $articles;
}
require_once('plugin.PHP');
$menu = computeMenu();
$articles = computeArticles();
print_r($menu);
print_r($articles);
PHP;">
'MycoolPlugin','link' => '/MyCoolPlugin'));
}
public static
function getArticles()
{
return array(array('path' => '/MycoolPlugin','title' => 'This is a really cool article','text' => xxxxxxxxx));
}
}
什么是PHP反射类,顾名思义,可以理解为一个类的映射。
举个例子:
PHP;">
class fuc { //定义一个类
static
function ec() {
echo '我是一个类';
}
}
$class=new ReflectionClass('fuc'); //建立 fuc这个类的反射类
至于$class 这反射类里有什么东东,可以查看手册,这里不详解了
其中还有一些更高级的用法
只不过这里是反着来的,方法在前,对象在后
@H_404_35@补充:PHP代码在线格式化工具,可以方便读者对网上压缩的PHP格式化代码后进行阅读,方便实用!
更多关于PHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》、《》、《》、《》及《PHP常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
原文链接:https://www.f2er.com/php/19792.html