PHP使用反射机制实现查找类和方法的所在位置


Posted in PHP onApril 22, 2016

本文实例讲述了PHP使用反射机制实现查找类和方法的所在位置。分享给大家供大家参考,具体如下:

//参数1是类名,参数2是方法名
$func = new ReflectionMethod('UnifiedOrder_pub', 'getPrepayId');
//从第几行开始
$start = $func->getStartLine() - 1;
//从第几行结束
$end = $func->getEndLine() - 1;
//获取路径地址
$filename = $func->getFileName();

下面是摘抄的示例代码比较全面

<?php
function a() {
}
class b {
  public function f() {
  }
}
function function_dump($funcname) {
  try {
    if(is_array($funcname)) {
      $func = new ReflectionMethod($funcname[0], $funcname[1]);
      $funcname = $funcname[1];
    } else {
      //这个应该是当只有一个参数的时候就看做是本类的发放吧,大概,自行百度
      $func = new ReflectionFunction($funcname);
    }
  } catch (ReflectionException $e) {
    echo $e->getMessage();
    return;
  }
  $start = $func->getStartLine() - 1;
  $end = $func->getEndLine() - 1;
  $filename = $func->getFileName();
  echo "function $funcname defined by $filename($start - $end)\n";
}
function_dump('a');
function_dump(array('b', 'f'));
$b = new b();
function_dump(array($b, 'f'));
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP中动态显示签名和ip原理
Mar 28 PHP
一些常用的php简单命令代码集锦
Sep 24 PHP
PHP __autoload()方法真的影响性能吗?
Mar 30 PHP
PHP数据类型的总结分析
Jun 13 PHP
discuz加密解密函数使用方法和中文注释
Jan 21 PHP
C#静态方法与非静态方法实例分析
Sep 22 PHP
WordPress中访客登陆实现邮件提醒的PHP脚本实例分享
Dec 14 PHP
PHP附件下载中文名称乱码的解决方法
Dec 17 PHP
php.ini中date.timezone设置详解
Nov 20 PHP
PHP基于递归实现的约瑟夫环算法示例
Aug 27 PHP
PHP检测接口Traversable用法详解
Dec 29 PHP
php和nginx交互实例讲解
Sep 24 PHP
浅析Yii2中GridView常见操作
Apr 22 #PHP
php简单实现sql防注入的方法
Apr 22 #PHP
PHP简单获取及判断提交来源的方法
Apr 22 #PHP
thinkPHP3.1验证码的简单实现方法
Apr 22 #PHP
thinkPHP实现将excel导入到数据库中的方法
Apr 22 #PHP
利用php输出不同的心形图案
Apr 22 #PHP
php生成酷炫的四个字符验证码
Apr 22 #PHP
You might like
php中对2个数组相加的函数
2011/06/24 PHP
PHP中的随机性 你觉得自己幸运吗?
2016/01/22 PHP
window.onload 加载完毕的问题及解决方案(上)
2009/07/09 Javascript
Jquery中显示隐藏的实现代码分析
2011/07/26 Javascript
Jquery submit()无法提交问题
2013/04/21 Javascript
利用javascript实现web页面中指定区域打印
2013/10/30 Javascript
ECMAScript 5中的属性描述符详解
2015/03/02 Javascript
jQuery实现信息提示框(带有圆角框与动画)效果
2015/08/07 Javascript
JavaScript事件详细讲解
2016/06/27 Javascript
AngularJS删除路由中的#符号的方法
2016/09/20 Javascript
详解nodejs异步I/O和事件循环
2017/06/07 NodeJs
js与jQuery实现的用户注册协议倒计时功能实例【三种方法】
2017/11/09 jQuery
Vuex实现计数器以及列表展示效果
2018/03/10 Javascript
解决vscode进行vue格式化,会自动补分号和双引号的问题
2020/10/26 Javascript
Array.filter中如何正确使用Async
2020/11/04 Javascript
[06:01]刀塔次级联赛top10第一期
2014/11/07 DOTA
[02:11]2016国际邀请赛中国区预选赛最美TA采访现场玩家
2016/06/28 DOTA
[43:43]完美世界DOTA2联赛PWL S2 FTD.C vs Rebirth 第一场 11.22
2020/11/24 DOTA
Python中实现远程调用(RPC、RMI)简单例子
2014/04/28 Python
Python图像灰度变换及图像数组操作
2016/01/27 Python
Django stark组件使用及原理详解
2019/08/22 Python
深入浅析Python 函数注解与匿名函数
2020/02/24 Python
linux mint中搜狗输入法导致pycharm卡死的问题
2020/10/28 Python
CSS3 画基本图形,圆形、椭圆形、三角形等
2016/09/20 HTML / CSS
CAT鞋英国官网:坚固耐用的靴子和鞋
2016/10/21 全球购物
优衣库英国官网:UNIQLO英国
2016/12/25 全球购物
威尔逊皮革:Wilsons Leather
2018/12/07 全球购物
Reebok官方旗舰店:美国知名健身品牌锐步
2019/01/07 全球购物
Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型
2013/10/30 面试题
付款委托书范本
2014/04/04 职场文书
大学社团活动总结
2014/04/26 职场文书
公司授权委托书范本
2014/09/18 职场文书
感谢信怎么写
2015/01/21 职场文书
西安兵马俑导游词
2015/02/02 职场文书
2015年妇幼保健工作总结
2015/05/19 职场文书
python爬取新闻门户网站的示例
2021/04/25 Python