PHP获取指定函数定义在哪个文件中以及其所在的行号实例


Posted in PHP onMay 08, 2014

当调试开源的代码时,希望查看某个函数的定义,那么就需要定位其位置。在 zend studio 这样的 IDE 中自是可以自动提示到,但当没有安装这样的开发工具时,我们可以怎么办呢?参考如下一段代码,或许就包含你所需的。

<?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 相关文章推荐
BBS(php &amp; mysql)完整版(五)
Oct 09 PHP
提高PHP编程效率的53个要点(经验小结)
Sep 04 PHP
JSON在PHP中的应用介绍
Sep 08 PHP
浅析PHP原理之变量(Variables inside PHP)
Aug 09 PHP
PHP编写的图片验证码类文件分享
Jun 06 PHP
PHP带节点操作的无限分类实现方法详解
Nov 09 PHP
thinkPHP商城公告功能开发问题分析
Dec 01 PHP
PHP获取文件扩展名的常用方法小结【五种方式】
Apr 27 PHP
php实现微信支付之退款功能
May 30 PHP
php array 转json及java 转换 json数据格式操作示例
Nov 13 PHP
Laravel框架Blade模板简介及模板继承用法分析
Dec 03 PHP
ThinkPHP5&amp;5.1实现验证码的生成、使用及点击刷新功能示例
Feb 07 PHP
Windows和Linux中php代码调试工具Xdebug的安装与配置详解
May 08 #PHP
PHP中把stdClass Object转array的几个方法
May 08 #PHP
PHP批量检测并去除文件BOM头代码实例
May 08 #PHP
php代码审计比较有意思的例子
May 07 #PHP
一个php短网址的生成代码(仿微博短网址)
May 07 #PHP
php实现信用卡校验位算法THE LUHN MOD-10示例
May 07 #PHP
php对称加密算法示例
May 07 #PHP
You might like
投票管理程序
2006/10/09 PHP
一个PHP数组应该有多大的分析
2009/07/30 PHP
选择PHP作为网站开发语言的原因分享
2012/01/03 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(八)
2014/06/23 PHP
Destoon实现多表查询示例
2014/08/21 PHP
默认让页面的第一个控件选中的javascript代码
2009/12/26 Javascript
jquery 图片 上一张 下一张 链接效果(续篇)
2010/04/20 Javascript
在JQuery dialog里的服务器控件 事件失效问题
2010/12/08 Javascript
jQuery实现鼠标移到元素上动态提示消息框效果
2013/10/20 Javascript
探讨JQUERY JSON的反序列化类 using问题的解决方法
2013/12/19 Javascript
javascript的propertyIsEnumerable()方法使用介绍
2014/04/09 Javascript
JavaScript编程中window的location与history对象详解
2015/10/26 Javascript
JavaScript的Backbone.js框架环境搭建及Hellow world示例
2016/05/07 Javascript
js面向对象实现canvas制作彩虹球喷枪效果
2016/09/24 Javascript
Vue响应式原理深入解析及注意事项
2017/12/11 Javascript
vue 自定义全局方法,在组件里面的使用介绍
2018/02/28 Javascript
详解如何解决Vue和vue-template-compiler版本之间的问题
2018/09/17 Javascript
js canvas实现二维码和图片合成的海报
2020/11/19 Javascript
node全局变量__dirname与__filename的区别
2019/01/14 Javascript
VueCli4项目配置反向代理proxy的方法步骤
2020/05/17 Javascript
Vue-Ant Design Vue-普通及自定义校验实例
2020/10/24 Javascript
[58:11]守擂赛第二周擂主赛 DeMonsTer vs Leopard
2020/04/28 DOTA
python基础知识小结之集合
2015/11/25 Python
使用Mixin设计模式进行Python编程的方法讲解
2016/06/21 Python
pycharm 将django中多个app放到同个文件夹apps的处理方法
2018/05/30 Python
Python交互环境下实现输入代码
2018/06/22 Python
远程部署工具Fabric详解(支持Python3)
2019/07/04 Python
python 实现dict转json并保存文件
2019/12/05 Python
python dataframe NaN处理方式
2019/12/26 Python
TensorFlow dataset.shuffle、batch、repeat的使用详解
2020/01/21 Python
tensorflow生成多个tfrecord文件实例
2020/02/17 Python
如何在keras中添加自己的优化器(如adam等)
2020/06/19 Python
投标服务承诺书
2014/05/28 职场文书
车间核算员岗位职责
2014/07/01 职场文书
简历自我评价优缺点
2015/03/11 职场文书
2015年行政人事部工作总结
2015/05/13 职场文书