本文实例讲述了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);
rush:PHP;">
'MycoolPlugin','link' => '/MyCoolPlugin'));
}
public static
function getArticles()
{
return array(array('path' => '/MycoolPlugin','title' => 'This is a really cool article','text' => xxxxxxxxx));
}
}
举个例子:
rush:PHP;">
class fuc { //定义一个类
static
function ec() {
echo '我是一个类';
}
}
$class=new ReflectionClass('fuc'); //建立 fuc这个类的反射类
至于$class 这反射类里有什么小编,可以查看手册,这里不详解了
其中还有一些更高级的用法
只不过这里是反着来的,方法在前,对象在后
补充
:PHP代码在线格式化工具,可以方便读者对网上压缩的PHP格式化代码后进行阅读,方便实用!更多关于PHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》、《》、《》、《》及《PHP常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。