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 相关文章推荐
模板引擎Smarty深入浅出介绍
Dec 06 PHP
smarty+adodb+部分自定义类的php开发模式
Dec 31 PHP
PHP语言中global和$GLOBALS[]的分析 之二
Feb 02 PHP
MySQL 日期时间函数常用总结
Jun 12 PHP
Smarty foreach控制循环次数的实现详解
Jul 03 PHP
PHP OPP机制和模式简介(抽象类、接口和契约式编程)
Jun 09 PHP
PHP会话控制:Session与Cookie详解
Sep 27 PHP
Yii2 加载css、js 载静态资源的方法
Mar 10 PHP
yii2 上传图片的示例代码
Nov 02 PHP
laravel 查询数据库获取结果实现判断是否为空
Oct 24 PHP
PHP 实现 JSON 数据的编码和解码操作详解
Apr 22 PHP
php字符串倒叙
Apr 01 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
通过对php一些服务器端特性的配置加强php的安全
2006/10/09 PHP
PHP set_error_handler()函数使用详解(示例)
2013/11/12 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十五)
2014/06/30 PHP
10个简化PHP开发的工具
2014/12/25 PHP
PHP输入输出流学习笔记
2015/05/12 PHP
微信开发之网页授权获取用户信息(二)
2016/01/08 PHP
javascript中length属性的探索
2011/07/31 Javascript
拥抱模块化的JavaScript
2012/03/07 Javascript
ie与ff下的event事件使用介绍
2013/11/25 Javascript
在HTML代码中使用JavaScript代码的例子
2014/10/16 Javascript
Canvas放置反弹效果随机图形(实例)
2017/08/17 Javascript
通过vue-router懒加载解决首次加载时资源过多导致的速度缓慢问题
2018/04/08 Javascript
vue组件jsx语法的具体使用
2018/05/21 Javascript
使用apifm-wxapi快速开发小程序过程详解
2019/08/05 Javascript
详解Vue中的Props与Data细微差别
2020/03/02 Javascript
解决vue动态下拉菜单 有数据未反应的问题
2020/08/06 Javascript
python中kmeans聚类实现代码
2018/02/23 Python
VSCode下好用的Python插件及配置
2018/04/06 Python
Python 利用内置set函数对字符串和列表进行去重的方法
2018/06/29 Python
利用Pandas读取文件路径或文件名称包含中文的csv文件方法
2018/07/04 Python
详解python运行三种方式
2019/05/13 Python
ipython和python区别详解
2019/06/26 Python
Django 数据库同步操作技巧详解
2019/07/19 Python
详解Python 4.0 预计推出的新功能
2019/07/26 Python
使用python实现滑动验证码功能
2019/08/05 Python
Django+Celery实现动态配置定时任务的方法示例
2020/05/26 Python
聊聊python中的异常嵌套
2020/09/01 Python
联想法国官方网站:Lenovo法国
2018/10/18 全球购物
牦牛毛户外探险服装:Kora
2019/02/08 全球购物
德国受欢迎的旅游和休闲网站:lastminute.de
2019/09/23 全球购物
刚毕业大学生自荐信范文
2014/02/20 职场文书
2015夏季作息时间调整通知
2015/04/24 职场文书
高中班主任工作总结(范文)
2019/08/20 职场文书
Anaconda安装pytorch和paddle的方法步骤
2022/04/03 Python
《吸血鬼幸存者》新内容发布 追加多个全新模式
2022/04/07 其他游戏