PHP获取指定函数定义在哪个文件中以及其所在的行号实例_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'));
?>

时间: 2024-09-13 03:22:41

PHP获取指定函数定义在哪个文件中以及其所在的行号实例_php技巧的相关文章

PHP获取指定函数定义在哪个文件中及行号

当调试开源的代码时,希望查看某个函数的定义,那么就需要定位其位置.特别是有的项目中,函数会有多个地方都有定义,那么如果我想知道当前调用的这个函数是在哪里定义的,可以用下面这个方法. function function_dump($funcname) { try { if(is_array($funcname)) { $func = new ReflectionMethod($funcname[0], $funcname[1]); $funcname = $funcname[1]; } else

PHP创建文件,并向文件中写入数据,覆盖,追加的实现代码_php技巧

创建文件我们用到函数 fopen ( string filename, string mode ) 参数filename为创建文件名 参数mode为以什么方式打开文件filename 其中mode可能值列表: mode 说明 'r' 只读方式打开,将文件指针指向文件头. 'r+' 读写方式打开,将文件指针指向文件头. 'w' 写入方式打开,将文件指针指向文件头并将文件大小截为零.如果文件不存在则尝试创建之. 'w+' 读写方式打开,将文件指针指向文件头并将文件大小截为零.如果文件不存在则尝试创建

在html文件中也可以执行php语句的方法_php技巧

在apache的conf目录中修改文件httpd.conf. 搜索AddType application/ 找到前面没有#的那条,在下面添加AddType application/x-httpd-php .html 这样,即使后缀是html的文件,也会经过php引擎编译才能输出到浏览器中. 建议不要这样做,如果是这样的话,浏览器可以直接输出的也要经过php引擎.你不累,引擎还累呢!

php判断上传的Excel文件中是否有图片及PHPExcel库认识_php技巧

需要借助PHPExcel这个库 复制代码 代码如下: $excelPath = 'Test.xls'; $objReader = PHPExcel_IOFactory::createReader('Excel5'); $objReader->setReadDataOnly(true); $objPHPExcel = $objReader->load($excelPath); $currentSheet = $objPHPExcel->getActiveSheet(); $AllImage

PHP中使用Imagick实现各种图片效果实例_php技巧

imagick是一个功能强大的图像处理库.  说是翻译 其实就是简要介绍imagick 的主要功能的或者说是我觉得比较实用的功能函数的介绍 以及使用的例子.  因为本人的英语水平有限,所以采用比较通俗或者说比较贴近应用化的语言来描述.  先欣赏一组炫丽的效果:   偏置图像:   例子:  复制代码 代码如下:   <?php  ini_set('display_errors',1);  header('Content-type: image/jpeg');  $image = new Imag

Android App中DrawerLayout抽屉效果的菜单编写实例_php技巧

抽屉效果的导航菜单看了很多应用,觉得这种侧滑的抽屉效果的菜单很好. 不用切换到另一个页面,也不用去按菜单的硬件按钮,直接在界面上一个按钮点击,菜单就滑出来,而且感觉能放很多东西. 库的引用: 首先, DrawerLayout这个类是在Support Library里的,需要加上android-support-v4.jar这个包. 然后程序中用时在前面导入import android.support.v4.widget.DrawerLayout; 如果找不到这个类,首先用SDK Manager更新

PHP中的traits实现代码复用使用实例_php技巧

PHP5.4后新增traits实现代码复用机制,Trait和类相似,但不能被实例化,无需继承,只需要在类中使用关键词use引入即可,可引入多个Traits,用','隔开. (1)Trait简单使用 <?php trait A { public $var1 = 'test1'; public function test1() { echo 'trait A::test1()'; } } trait B { public $var2 = 'test2'; public function test2(

PHP 下载文件时自动添加bom头的方法实例_php技巧

首先弄清楚,什么是bom头?在Windows下用记事本之类的程序将文本文件保存为UTF-8格式时,记事本会在文件头前面加上几个不可见的字符(EF BB BF),就是所谓的BOM(Byte order Mark).不仅限于 记事本保存的文件,只要在文件的开口包含了EF BB BF 几个不可见的字符(十六进制应该是是xEFxBBxBF,用二进制编辑文件可见).这像是一个约定俗成的东西,当系统看到这玩意的时候,就会觉得你这个文件是UTF-8编码的. 如果你的接口是UTF-8的,你需要强制下载一个文件,

PHP获取栏目的所有子级和孙级栏目的ID号示例_php技巧

复制代码 代码如下: //@获取子栏目ID号 private function sonCategoryIds($categoryID) { //@初始化栏目数组 $array[] = $categoryID; do { $ids = ''; $temp = $this->mysql->select('SELECT `id` FROM `pcb_article_category` WHERE `parentID` IN (' . $categoryID . ')'); foreach ($tem