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 和 MySQL 基础教程(二)
Oct 09 PHP
php入门小知识
Mar 24 PHP
php面向对象全攻略 (八)重载新的方法
Sep 30 PHP
一些被忽视的PHP函数(简单整理)
Apr 30 PHP
实测在class的function中include的文件中非php的global全局环境
Jul 15 PHP
ThinkPHP V2.2说明文档没有说明的那些事实例小结
Jul 01 PHP
PHP中JSON的应用技巧
Oct 10 PHP
使用Huagepage和PGO来提升PHP7的执行性能
Nov 30 PHP
php进程间通讯实例分析
Jul 11 PHP
在PHP语言中使用JSON和将json还原成数组的方法
Jul 19 PHP
php函数mkdir实现递归创建层级目录
Oct 27 PHP
PHP查询分页的实现代码
Jun 09 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+JavaScript实现无刷新上传图片
2017/02/21 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
JavaScript实现两个Table固定表头根据页面大小自行调整
2014/01/03 Javascript
原生JavaScript生成GUID的实现示例
2014/09/05 Javascript
JQuery中层次选择器用法实例详解
2015/05/18 Javascript
javascript实现3D切换焦点图
2015/10/16 Javascript
AngularJS学习笔记之依赖注入详解
2016/05/16 Javascript
JQuery实现文字无缝滚动效果示例代码(Marquee插件)
2017/03/07 Javascript
最常用的jQuery表单验证(简单)
2017/05/23 jQuery
Vue 创建组件的两种方法小结(必看)
2018/02/23 Javascript
vue实现a标签点击高亮方法
2018/03/17 Javascript
关于HTML5的data-*自定义属性的总结
2018/05/05 Javascript
微信小程序select下拉框实现源码
2019/11/08 Javascript
vue实现表单未编辑或未保存离开弹窗提示功能
2020/04/08 Javascript
Vue项目vscode 安装eslint插件的方法(代码自动修复)
2020/04/15 Javascript
Python实现文件按照日期命名的方法
2015/07/09 Python
Go语言基于Socket编写服务器端与客户端通信的实例
2016/02/19 Python
python socket多线程通讯实例分析(聊天室)
2016/04/06 Python
java中两个byte数组实现合并的示例
2018/05/09 Python
Django 使用Ajax进行前后台交互的示例讲解
2018/05/28 Python
Python实现的个人所得税计算器示例
2018/06/01 Python
Python中浅拷贝copy与深拷贝deepcopy的简单理解
2018/10/26 Python
详解pandas如何去掉、过滤数据集中的某些值或者某些行?
2019/05/15 Python
将数据集制作成VOC数据集格式的实例
2020/02/17 Python
Python机器学习工具scikit-learn的使用笔记
2021/01/28 Python
我未来的职业规划范文
2014/01/11 职场文书
优秀志愿者事迹材料
2014/02/03 职场文书
企业内控岗位的职责
2014/02/07 职场文书
恶搞卫生巾广告词
2014/03/18 职场文书
养生餐厅创业计划书范文
2014/03/26 职场文书
施工协议书范本
2014/04/22 职场文书
护士求职信范文
2014/05/24 职场文书
教师党员群众路线教育实践活动心得体会
2014/11/04 职场文书
2016年国陪研修感言
2015/11/18 职场文书
2019年最新借条范本!
2019/07/08 职场文书
SpringBoot+Redis实现布隆过滤器的示例代码
2022/03/17 Java/Android