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 相关文章推荐
mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法
Mar 15 PHP
PHP 多维数组排序实现代码
Aug 05 PHP
php使用Smarty的相关注意事项及访问变量的几种方式
Dec 08 PHP
基于PHP选项与信息函数的使用详解
May 10 PHP
一个简洁的PHP可逆加密函数(分享)
Jun 06 PHP
PHP SPL标准库之数据结构堆(SplHeap)简单使用实例
May 12 PHP
php指定长度分割字符串str_split函数用法示例
Jan 30 PHP
php获取excel文件数据
Apr 21 PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
May 12 PHP
用PHP的反射实现委托模式的讲解
Mar 22 PHP
ThinkPHP框架下微信支付功能总结踩坑笔记
Apr 10 PHP
php字符串倒叙
Apr 01 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
mysql 全文搜索 技巧
2007/04/27 PHP
实用函数10
2007/11/08 PHP
Fatal error: session_start(): Failed to initialize storage module: files问题解决方法
2014/05/04 PHP
Windows中使用计划任务自动执行PHP程序实例
2014/05/09 PHP
php新浪微博登录接口用法实例
2014/12/23 PHP
PHP5.5.15+Apache2.4.10+MySQL5.6.20配置方法分享
2016/05/06 PHP
解决laravel查询构造器中的别名问题
2019/10/17 PHP
JavaScript 动态添加表格行 使用模板、标记
2009/10/24 Javascript
获取鼠标在div中的相对位置的实现代码
2013/12/30 Javascript
浅谈js中的闭包
2015/03/16 Javascript
Angularjs 实现分页功能及示例代码
2016/09/14 Javascript
javascript ES6中箭头函数注意细节小结
2017/02/17 Javascript
jQuery插件jqGrid动态获取列和列字段的方法
2017/03/03 Javascript
JavaScript实现父子dom同时绑定两个点击事件,一个用捕获,一个用冒泡时执行顺序的方法
2017/03/30 Javascript
vue中使用vue-router切换页面时滚动条自动滚动到顶部的方法
2017/11/28 Javascript
JS中‘hello’与new String(‘hello’)引出的问题详解
2018/08/14 Javascript
使用element-ui table expand展开行实现手风琴效果
2019/03/15 Javascript
基于vue-cli3和element实现登陆页面
2019/11/13 Javascript
[02:47]DOTA2英雄基础教程 野性怒吼兽王
2013/12/05 DOTA
简单介绍Python中的try和finally和with方法
2015/05/05 Python
Python构建XML树结构的方法示例
2017/06/30 Python
Python使用文件锁实现进程间同步功能【基于fcntl模块】
2017/10/16 Python
深入理解Python中的*重复运算符
2017/10/28 Python
Python程序打包工具py2exe和PyInstaller详解
2019/06/28 Python
感知器基础原理及python实现过程详解
2019/09/30 Python
Python实现简单的猜单词小游戏
2020/10/28 Python
matplotlib部件之矩形选区(RectangleSelector)的实现
2021/02/01 Python
技术总监的工作职责
2013/11/13 职场文书
教师旷工检讨书
2014/01/18 职场文书
求职信的最佳写作思路
2014/02/01 职场文书
项目总经理岗位职责
2014/02/14 职场文书
幼儿园秋游感想
2014/03/12 职场文书
学习雷锋精神演讲稿
2014/05/10 职场文书
综艺节目策划方案
2014/06/13 职场文书
学生会竞选演讲稿纪检部
2014/08/25 职场文书
党的群众路线教育实践活动批评与自我批评范文
2014/10/16 职场文书