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

当调试开源的代码时,希望查看某个函数的定义,那么就需要定位其位置。在 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'));
?>

(0)

相关推荐

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

    当调试开源的代码时,希望查看某个函数的定义,那么就需要定位其位置.在 zend studio 这样的 IDE 中自是可以自动提示到,但当没有安装这样的开发工具时,我们可以怎么办呢?参考如下一段代码,或许就包含你所需的. 复制代码 代码如下: <?phpfunction a() {} class b {    public function f() {    }} function function_dump($funcname) {    try {        if(is_array($fu

  • JS使用ajax方法获取指定url的head信息中指定字段值的方法

    本文实例讲述了JS使用ajax方法获取指定url的head信息中指定字段值的方法.分享给大家供大家参考.具体分析如下: 下面的JS代码用来获取ajax_info.txt的head信息中的Last modified属性,最后修改时间 <!DOCTYPE html> <html> <head> <script> function loadXMLDoc(url) { var xmlhttp; if (window.XMLHttpRequest) {// code

  • python清除指定目录内所有文件中script的方法

    本文实例讲述了python清除指定目录内所有文件中script的方法.分享给大家供大家参考.具体如下: 将脚本存储为stripscripts.py 调用语法 : python stripscripts.py <directory> 使用范例 : python stripscripts.py d:\myfiles # Hello, this is a script written in Python. See http://www.pyhon.org import os,sys,string,r

  • VBS怎么获取指定目录下的文件列表

    VBS肿么获取某目录下的文件列表 dim FileName,fs,foldername foldername = InputBox("请输入想要在哪个文件夹查找", "VBS查找文件") If foldername = "" Then wscript.quit End If Set fs = CreateObject("scripting.filesystemobject") digui (foldername)'调用递归函数

  • Golang 实现获取当前函数名称和文件行号等操作

    大家还是直接看代码吧~ // 获取正在运行的函数名 func runFuncName()string{ pc := make([]uintptr,1) runtime.Callers(2,pc) f := runtime.FuncForPC(pc[0]) return f.Name() } package main import( "fmt" "runtime" ) // 获取正在运行的函数名 func runFuncName()string{ pc := make

  • php reset() 函数指针指向数组中的第一个元素并输出实例代码

    reset函数将数组的内部指针指向第一个单元,并输出该数组. 基本语法 reset(array) reset() 将 array 的内部指针倒回到第一个单元并返回第一个数组单元的值. 参数介绍: 参数 描述 array 必需.规定要使用的数组. 返回值 返回数组第一个单元的值,如果数组为空则返回 FALSE. 实例 <?php $array = array('step one', 'step two', 'step three', 'step four'); // 数组默认指针指向第一个元素 e

  • 使用PHP下载CSS文件中的所有图片【几行代码即可实现】

    我们在扒皮(你们懂的)经常会遇到,虽然有扒皮软件吧~但跑在windows下~ 这儿来个PHP的~~~只要几行代码即可实现 <?php set_time_limit(0); //取得样式文件内容 $styleFileContent = file_get_contents('images/style.css'); //匹配出需要下载的URL地址 preg_match_all("/url\((.*)\)/", $styleFileContent, $imagesURLArray); /

  • elementUi 中table表尾插入行的实例

    目录 elementUi table表尾插入行 element table 自定义表尾 先看最终实现的效果 实现过程 elementUi table表尾插入行 <template> <div> <el-table stripe class="jx-table" :data="tableData" border ref="table" style="width: 100%"> <el-t

  • C++获取指定目录下的所有文件

    本文实例为大家分享了C++获取指定目录下所有文件的具体代码,供大家参考,具体内容如下 1.获得指定目录下的所有文件(不搜索子文件夹) 需要包含的头文件 #include <io.h> #include <string> #include <vector> #include <fstream> 函数实现 void getAllFiles(string path, vector<string>& files) { // 文件句柄 long h

  • webpack 从指定入口文件中提取公共文件的方法

    在不明白CommonsChunkPlugin的使用情况下,直接上手webpack4的splitChunks,实在是难上加难.为了能更好的理解splitChunks的使用,必须出个题目,练练手,才能从中有所收获(下面的题目不考虑实际应用场景): 从指定入口文件中提取公共文件 CommonsChunkPlugin的实现: entry: { index:'./src/index.js', index1:'./src/index1.js', index2:'./src/index2.js' }, plu

随机推荐