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源码之 ext/mysql扩展部分
Jul 17 PHP
使用Linux五年积累的一些经验技巧
Jun 20 PHP
PHP FTP操作类代码( 上传、拷贝、移动、删除文件/创建目录)
May 10 PHP
兼容各大浏览器带关闭按钮的漂浮多组图片广告代码
Jun 05 PHP
PHP链接MySQL的常用扩展函数
Oct 23 PHP
Linux下PHP加速器APC的安装与配置笔记
Oct 24 PHP
set_exception_handler函数在ThinkPHP中的用法
Oct 31 PHP
PHP安装memcached扩展笔记
May 28 PHP
PHP使用stream_context_create()模拟POST/GET请求的方法
Apr 02 PHP
php htmlentities()函数的定义和用法
May 13 PHP
php微信公众平台开发(三)订阅事件处理
Dec 06 PHP
PHP strripos函数用法总结
Feb 11 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
基于Laravel(5.4版本)的基本增删改查操作方法
2019/10/11 PHP
如何用javascript控制上传文件的大小
2006/10/26 Javascript
JavaScript 基于原型的对象(创建、调用)
2009/10/16 Javascript
当json键为数字时的取值方法解析
2013/11/15 Javascript
JSON格式的键盘编码对照表
2015/01/29 Javascript
通过伪协议解决父页面与iframe页面通信的问题
2015/04/05 Javascript
JS区分浏览器页面是刷新还是关闭
2016/04/17 Javascript
JS简单获取及显示当前时间的方法
2016/08/03 Javascript
JavaScript实现in-place思想的快速排序方法
2016/08/07 Javascript
BootStrap树状图显示功能
2016/11/24 Javascript
three.js绘制地球、飞机与轨迹的效果示例
2017/02/28 Javascript
AngularJS $http模块POST请求实现
2017/04/08 Javascript
用javascript获取任意颜色的更亮或更暗颜色值示例代码
2017/07/21 Javascript
Vue 框架之键盘事件、健值修饰符、双向数据绑定
2018/11/14 Javascript
30分钟精通React今年最劲爆的新特性——React Hooks
2019/03/11 Javascript
解决vant title-active-color与title-inactive-color不生效问题
2020/11/03 Javascript
python dict 字典 以及 赋值 引用的一些实例(详解)
2017/01/20 Python
解决sublime+python3无法输出中文的问题
2018/12/12 Python
在Python中COM口的调用方法
2019/07/03 Python
Pyinstaller 打包exe教程及问题解决
2019/08/16 Python
python 画条形图(柱状图)实例
2020/04/24 Python
html5 canvas实现给图片添加平铺水印
2019/08/20 HTML / CSS
Michael Kors加拿大官网:购买设计师手袋、手表、鞋子、服装等
2019/03/16 全球购物
马来西亚在线购物:POPLOOK.com
2019/12/09 全球购物
摄影专业毕业生求职信
2014/03/13 职场文书
大学学生会竞选演讲稿
2014/04/25 职场文书
工作推荐信范文
2014/05/10 职场文书
小学语文教学经验交流材料
2014/06/02 职场文书
关于读书的演讲稿400字
2014/08/27 职场文书
爱牙日活动总结
2014/08/29 职场文书
个人对照检查材料思想汇报(四风问题)
2014/09/25 职场文书
2015年圣诞节活动总结
2015/03/24 职场文书
2015年银行工作总结范文
2015/04/01 职场文书
赤壁观后感(2)
2015/06/15 职场文书
利用Apache Common将java对象池化的问题
2022/06/16 Servers
Java Redisson多策略注解限流
2022/09/23 Java/Android