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 相关文章推荐
echo(),print(),print_r()之间的区别?
Nov 19 PHP
Discuz Uchome ajaxpost小技巧
Jan 04 PHP
php中处理mysql_fetch_assoc返回来的数组 不用foreach----echo
May 04 PHP
真正根据utf8编码的规律来进行截取字符串的函数(utf8版sub_str )
Oct 24 PHP
phpword插件导出word文件时中文乱码问题处理方案
Aug 19 PHP
php获取Google机器人访问足迹的方法
Apr 15 PHP
PHP概率计算函数汇总
Sep 13 PHP
PHP实现动态执行代码的方法
Mar 25 PHP
PHP实现对二维数组某个键排序的方法
Sep 14 PHP
CI框架(ajax分页,全选,反选,不选,批量删除)完整代码详解
Nov 01 PHP
PHP实现的同步推荐操作API接口案例分析
Nov 30 PHP
PHP数组去重的更快实现方式分析
May 09 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导出中文乱码及phpmyadmin导入中文乱码的解决方法
2010/06/11 PHP
一个简单且很好用的php分页类
2013/10/26 PHP
ThinkPHP3.1新特性之G方法的使用
2014/06/19 PHP
php实现html标签闭合检测与修复方法
2015/07/09 PHP
php实现的pdo公共类定义与用法示例
2017/07/19 PHP
用jquery实现学校的校历(asp.net+jquery ui 1.72)
2010/01/01 Javascript
腾讯的ip接口 方便获取当前用户的ip地理位置
2010/11/25 Javascript
jquery 操作表格实现代码(多种操作打包)
2011/03/20 Javascript
jquery设置控件位置的方法
2013/08/21 Javascript
常见的原始JS选择器使用方法总结
2014/04/09 Javascript
使用jQuery.wechat构建微信WEB应用
2014/10/09 Javascript
jQuery EasyUI datagrid实现本地分页的方法
2015/02/13 Javascript
JavaScript阻止浏览器返回按钮的方法
2015/03/18 Javascript
jquery实现通用的内容渐显Tab选项卡效果
2015/09/07 Javascript
用Axios Element实现全局的请求loading的方法
2018/03/15 Javascript
Vue 父子组件数据传递的四种方式( inheritAttrs + $attrs + $listeners)
2018/05/04 Javascript
Vue中keep-alive组件作用详解
2020/02/04 Javascript
SublimeText 2编译python出错的解决方法(The system cannot find the file specified)
2013/11/27 Python
在Python中处理时间之clock()方法的使用
2015/05/22 Python
python网络编程调用recv函数完整接收数据的三种方法
2017/03/31 Python
Python实现数据库并行读取和写入实例
2017/06/09 Python
Python在groupby分组后提取指定位置记录方法
2018/04/20 Python
Python实现的求解最大公约数算法示例
2018/05/03 Python
Python实现读取txt文件并转换为excel的方法示例
2018/05/17 Python
使用python将大量数据导出到Excel中的小技巧分享
2018/06/14 Python
Python编程实现tail-n查看日志文件的方法
2019/07/08 Python
django中使用POST方法获取POST数据
2019/08/20 Python
django model object序列化实例
2020/03/13 Python
PyQt5实现简单的计算器
2020/05/30 Python
Java里面StringBuilder和StringBuffer有什么区别
2016/06/06 面试题
计算机专业推荐信范文
2013/11/27 职场文书
化学教师自荐信范文
2013/12/28 职场文书
2014标准社保办理委托书
2014/10/06 职场文书
个人年终总结结尾
2015/03/06 职场文书
如果用一句诗总结你的上半年,你会用哪句呢?
2019/07/16 职场文书
python3.7.2 tkinter entry框限定输入数字的操作
2021/05/22 Python