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 相关文章推荐
php检测图片木马多进制编程实践
Apr 11 PHP
php读取富文本的时p标签会出现红线是怎么回事
May 13 PHP
php自动识别文件编码并转换为UTF-8的方法
Jun 12 PHP
PHP5.2下preg_replace函数的问题
May 08 PHP
PHP网络操作函数汇总
May 18 PHP
php编写简单的文章发布程序
Jun 18 PHP
PHP curl使用实例
Jul 02 PHP
php获取错误信息的方法
Jul 17 PHP
php微信公众平台配置接口开发程序
Sep 22 PHP
老生常谈php中传统验证与thinkphp框架(必看篇)
Jun 10 PHP
PHP memcache在微信公众平台的应用方法示例
Sep 13 PHP
PHP基本语法
Mar 31 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
一个PHP模板,主要想体现一下思路
2006/12/25 PHP
部署PHP项目应该注意的几点事项分享
2013/12/20 PHP
php禁止某ip或ip地址段访问的方法
2015/02/25 PHP
PHP中预定义的6种接口介绍
2015/05/12 PHP
新浪刚打开页面出来的全屏广告代码
2007/04/02 Javascript
javascript 对象定义方法 简单易学
2009/03/22 Javascript
JavaScript prototype对象的属性说明
2010/03/13 Javascript
JS 获取滚动条高度示例代码
2013/10/24 Javascript
Javascript封装DOMContentLoaded事件实例
2014/06/12 Javascript
PHP中CURL的几个经典应用实例
2015/01/23 Javascript
JSON字符串和对象之间的转换详解
2015/05/26 Javascript
javaScript实现可缩放的显示区效果代码
2015/10/26 Javascript
谈谈PHP中相对路径的问题与绝对路径的使用
2016/08/16 Javascript
AngularJS $http post 传递参数数据的方法
2018/10/09 Javascript
详解vue中使用axios对同一个接口连续请求导致返回数据混乱的问题
2019/11/06 Javascript
全面解析Vue中的$nextTick
2020/12/24 Vue.js
Windows下PyMongo下载及安装教程
2015/04/27 Python
举例详解Python中yield生成器的用法
2015/08/05 Python
解决python使用open打开文件中文乱码的问题
2017/12/29 Python
使用tensorflow实现线性回归
2018/09/08 Python
使用Python和Prometheus跟踪天气的使用方法
2019/05/06 Python
纯CSS绘制漂亮的圆形图案效果
2014/05/07 HTML / CSS
CSS3 text shadow字体阴影效果
2016/01/08 HTML / CSS
日本高端护肤品牌:Tatcha
2016/08/29 全球购物
Dyson戴森波兰官网:Dyson.pl
2019/08/05 全球购物
毕业生个人求职的自我评价
2013/10/28 职场文书
业务代表的岗位职责
2013/11/16 职场文书
大学生咖啡店创业计划书
2014/01/21 职场文书
三年级音乐教学反思
2014/01/28 职场文书
《小石潭记》教学反思
2014/02/13 职场文书
《李时珍夜宿古寺》教学反思
2014/04/09 职场文书
2014年社区妇联工作总结
2014/12/02 职场文书
2014大学生学生会工作总结
2014/12/19 职场文书
个人自荐书范文
2015/03/09 职场文书
使用GO语言实现Mysql数据库CURD的简单示例
2021/08/07 Golang
Redis模仿手机验证码发送的实现示例
2021/11/02 Redis