php如何实现不借助IDE快速定位行数或者方法定义的文件和位置


Posted in PHP onJanuary 17, 2017

php 如何实现不借助IDE快速定位行数或者方法定义的文件和位置

借助了ReflectionMethod的一些特性,可以快速获得函数或者方法是在哪个文件的什么位置定义的,对于调试没有文档的程序来说很有帮助!

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('get_affiliate');

输出:

function get_affiliate defined by D:\WWW\admin\affiliate.php(232 - 238)

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

PHP 相关文章推荐
第七节--类的静态成员
Nov 16 PHP
php 缓存函数代码
Aug 27 PHP
memcached 和 mysql 主从环境下php开发代码详解
May 16 PHP
基于PHP创建Cookie数组的详解
Jul 03 PHP
php+mysqli数据库连接的两种方式
Jan 28 PHP
php自定义hash函数实例
May 05 PHP
PHP排序算法之简单选择排序(Simple Selection Sort)实例分析
Apr 20 PHP
thinkphp5使用无限极分类
Feb 18 PHP
PHP7内核之Reference详解
Mar 14 PHP
PHP常用正则表达式精选(推荐)
May 28 PHP
php中文语义分析实现方法示例
Sep 28 PHP
Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解
Oct 11 PHP
php中preg_replace正则替换用法分析【一次替换多个值】
Jan 17 #PHP
yii使用bootstrap分页样式的实例
Jan 17 #PHP
关于Laravel Route重定向的一个注意点
Jan 16 #PHP
php文件管理基本功能简单操作
Jan 16 #PHP
Python中使用django form表单验证的方法
Jan 16 #PHP
phpinfo()中Loaded Configuration File(none)的解决方法
Jan 16 #PHP
php实现文件上传及头像预览功能
Jan 15 #PHP
You might like
PHP编程函数安全篇
2013/01/08 PHP
phpstorm配置Xdebug进行调试PHP教程
2014/12/01 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
PHP CURL中传递cookie的方法步骤
2019/05/09 PHP
PhpStorm 2020.3:新增开箱即用的PHP 8属性(推荐)
2020/10/30 PHP
使用dynatrace-ajax跟踪JavaScript的性能
2010/04/12 Javascript
java与javascript之间json格式数据互转介绍
2013/10/29 Javascript
jquery选择器之层级过滤选择器详解
2014/01/27 Javascript
Backbone.js框架中简单的View视图编写学习笔记
2016/02/14 Javascript
EasyUI加载完Html内容样式渲染完成后显示
2016/07/25 Javascript
关于JavaScript和jQuery的类型判断详解
2016/10/08 Javascript
NodeJS实现客户端js加密
2017/01/09 NodeJs
使用原生的javascript来实现轮播图
2017/02/24 Javascript
微信小程序 列表的上拉加载和下拉刷新的实现
2017/04/01 Javascript
node文件上传功能简易实现代码
2017/06/16 Javascript
Vue 实现双向绑定的四种方法
2018/03/16 Javascript
详解element-ui设置下拉选择切换必填和非必填
2019/06/17 Javascript
vue-cli3中配置alias和打包加hash值操作
2020/09/04 Javascript
python编程开发之日期操作实例分析
2015/11/13 Python
值得收藏,Python 开发中的高级技巧
2018/11/23 Python
解决使用PyCharm时无法启动控制台的问题
2019/01/19 Python
python中break、continue 、exit() 、pass终止循环的区别详解
2019/07/08 Python
python子线程退出及线程退出控制的代码
2019/10/16 Python
Python通过Schema实现数据验证方式
2020/11/12 Python
分享unittest单元测试框架中几种常用的用例加载方法
2020/12/02 Python
Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告
2021/01/27 Python
css3制作彩色边线3d立体按钮的示例(css3按钮)
2014/05/06 HTML / CSS
阿波罗盒子:Apollo Box
2017/08/14 全球购物
中学生学雷锋演讲稿
2014/04/26 职场文书
王力宏牛津大学演讲稿
2014/05/22 职场文书
建筑工地质量标语
2014/06/12 职场文书
工作违纪检讨书范文
2015/01/26 职场文书
班委竞选稿范文
2015/11/21 职场文书
在 SQL 语句中处理 NULL 值的方法
2021/06/07 SQL Server
JS创建或填充任意长度数组的小技巧汇总
2021/10/24 Javascript
阿里云服务器(windows)手动部署FTP站点详细教程
2022/08/05 Servers