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查询域名状态whois的类
Nov 25 PHP
10个可以简化php开发过程的MySQL工具
Apr 11 PHP
php Ubb代码编辑器函数代码
Jul 05 PHP
PHP仿博客园 个人博客(2) 数据库增添改删
Jul 05 PHP
使用PHP下载CSS文件中的图片的代码
Sep 24 PHP
php实现执行某一操作时弹出确认、取消对话框
Dec 30 PHP
迁移PHP版本到PHP7
Feb 06 PHP
php结合web uploader插件实现分片上传文件
May 10 PHP
ThinkPHP 3.2.3实现页面静态化功能的方法详解
Aug 03 PHP
PHP7.1实现的AES与RSA加密操作示例
Jun 15 PHP
PHP lcfirst()函数定义与用法
Mar 08 PHP
laradock环境docker-compose操作详解
Jul 29 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
destoon实现VIP排名一直在前面排序的方法
2014/08/21 PHP
php+ajax实现无刷新分页
2015/11/18 PHP
PHP文件操作详解
2016/12/30 PHP
firefox下frameset取不到值的解决方法
2010/09/06 Javascript
jquery getScript动态加载JS方法改进详解
2012/11/15 Javascript
javascript中使用正则计算中文长度的例子
2014/04/29 Javascript
jQuery中end()方法用法实例
2015/01/08 Javascript
javascript中JSON对象与JSON字符串相互转换实例
2015/07/11 Javascript
学习JavaScript设计模式(单例模式)
2015/11/26 Javascript
Vue封装的可编辑表格插件方法
2018/08/28 Javascript
vue配置font-awesome5的方法步骤
2019/01/27 Javascript
详解关于React-Router4.0跳转不置顶解决方案
2019/05/10 Javascript
el-select 下拉框多选实现全选的实现
2019/08/02 Javascript
Vue 实现从文件中获取文本信息的方法详解
2019/10/16 Javascript
Vue动态加载图片在跨域时无法显示的问题及解决方法
2020/03/10 Javascript
解决ant Design中Select设置initialValue时的大坑
2020/10/29 Javascript
[00:35]DOTA2上海特级锦标赛 VP战队宣传片
2016/03/04 DOTA
[06:25]第二届DOTA2亚洲邀请赛主赛事第二天比赛集锦.mp4
2017/04/03 DOTA
[04:03][TI9趣味短片] 小鸽子茶话会
2019/08/20 DOTA
使用python实现链表操作
2018/01/26 Python
pandas.loc 选取指定列进行操作的实例
2018/05/18 Python
Django models.py应用实现过程详解
2019/07/29 Python
python 实现二维列表转置
2019/12/02 Python
pytorch方法测试详解——归一化(BatchNorm2d)
2020/01/15 Python
windows下的pycharm安装及其设置中文菜单
2020/04/23 Python
python 实现rolling和apply函数的向下取值操作
2020/06/08 Python
python相对企业语言优势在哪
2020/06/12 Python
python函数超时自动退出的实操方法
2020/12/28 Python
Ootori在线按摩椅店:一家专业的按摩椅制造商
2019/04/10 全球购物
法警的竞聘演讲稿
2014/01/02 职场文书
领班岗位职责范文
2014/02/06 职场文书
《春到梅花山》教学反思
2014/04/16 职场文书
项目建议书
2015/02/04 职场文书
停电放假通知
2015/04/14 职场文书
学校节水倡议书
2015/04/29 职场文书
行政处罚决定书
2015/06/24 职场文书