PHP使用反射机制实现查找类和方法的所在位置


Posted in PHP onApril 22, 2016

本文实例讲述了PHP使用反射机制实现查找类和方法的所在位置。分享给大家供大家参考,具体如下:

//参数1是类名,参数2是方法名
$func = new ReflectionMethod('UnifiedOrder_pub', 'getPrepayId');
//从第几行开始
$start = $func->getStartLine() - 1;
//从第几行结束
$end = $func->getEndLine() - 1;
//获取路径地址
$filename = $func->getFileName();

下面是摘抄的示例代码比较全面

<?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 相关文章推荐
PHP实现图片简单上传
Oct 09 PHP
windows下PHP APACHE MYSQ完整配置
Jan 02 PHP
深入解析PHP垃圾回收机制对内存泄露的处理
Jun 14 PHP
PHP合并discuz用户脚本的方法
Aug 04 PHP
PHP的APC模块实现上传进度条
Oct 27 PHP
CodeIgniter针对数据库的连接、配置及使用方法
Mar 03 PHP
php自定义函数实现二维数组排序功能
Jul 20 PHP
微信公众号模板消息群发php代码示例
Dec 29 PHP
PDO::commit讲解
Jan 27 PHP
laravel5表单唯一验证的实例代码
Sep 30 PHP
Thinkphp 框架扩展之Widget扩展实现方法分析
Apr 23 PHP
PHP获取类私有属性的3种方法
Sep 10 PHP
浅析Yii2中GridView常见操作
Apr 22 #PHP
php简单实现sql防注入的方法
Apr 22 #PHP
PHP简单获取及判断提交来源的方法
Apr 22 #PHP
thinkPHP3.1验证码的简单实现方法
Apr 22 #PHP
thinkPHP实现将excel导入到数据库中的方法
Apr 22 #PHP
利用php输出不同的心形图案
Apr 22 #PHP
php生成酷炫的四个字符验证码
Apr 22 #PHP
You might like
关于时间计算的结总
2006/12/06 PHP
php 文章调用类代码
2011/08/11 PHP
Laravel 5.0 发布 新版本特性详解
2015/02/10 PHP
调试php程序的简单步骤
2019/10/04 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
ExtJs grid行 右键菜单的两种方法
2010/06/19 Javascript
javascript中的继承实例代码
2011/04/27 Javascript
javascript中input中readonly和disabled区别介绍
2012/10/23 Javascript
addEventListener和attachEvent二者绑定的执行函数中的this不相同
2012/12/09 Javascript
解决JQeury显示内容没有边距内容紧挨着浏览器边线
2013/12/20 Javascript
angularjs实现与服务器交互分享
2014/06/24 Javascript
使用nodejs、Python写的一个简易HTTP静态文件服务器
2014/07/18 NodeJs
Javascript中设置默认参数值示例
2014/09/11 Javascript
jquery.uploadify插件在chrome浏览器频繁崩溃解决方法
2015/03/01 Javascript
[原创]Bootstrap 中下拉菜单修改成鼠标悬停直接显示
2016/04/14 Javascript
JavaScript实现窗口抖动效果
2016/10/19 Javascript
浅析jsopn跨域请求原理及cors(跨域资源共享)的完美解决方法
2017/02/06 Javascript
Cookies 和 Session的详解及区别
2017/04/21 Javascript
js实现股票实时刷新数据案例
2017/05/14 Javascript
Bootstrap框架建立树形菜单(Tree)的实例代码
2017/10/30 Javascript
微信小程序 可搜索的地址选择实现详解
2019/08/28 Javascript
如何利用node.js开发一个生成逐帧动画的小工具
2019/12/01 Javascript
JavaScript逻辑运算符相关总结
2020/09/04 Javascript
[41:08]2014 DOTA2国际邀请赛中国区预选赛 HGT VS NE
2014/05/22 DOTA
[06:30]DOTA2英雄梦之声_第15期_死亡先知
2014/06/21 DOTA
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS TNC
2018/03/30 DOTA
在Python的Flask框架中使用模版的入门教程
2015/04/20 Python
将python文件打包exe独立运行程序方法详解
2020/02/12 Python
Python调用接口合并Excel表代码实例
2020/03/31 Python
Django ORM判断查询结果是否为空,判断django中的orm为空实例
2020/07/09 Python
使用PDF.JS插件在HTML中预览PDF文件的方法
2018/08/29 HTML / CSS
车辆工程专业求职信
2014/04/28 职场文书
生物学专业求职信
2014/07/23 职场文书
golang 实现时间戳和时间的转化
2021/05/07 Golang
《现实主义勇者的王国再建记》第三弹OST全曲试听片段公开
2022/04/04 日漫
css样式important规则的正确使用方式
2022/06/10 HTML / CSS