PHP利用反射根据类名反向寻找类所在文件
有时候分析源码时,会被博大精深的层层代码搞得晕头转向,不知道类是定义在哪个文件里的,有时候IDE所提供的方法声明未必准确。在这种情况下,我们可以利用反射找到类所在的文件。
在你发现实例化类的地方(例如class1中发现了class2的实例化,但是你不知道class2定义在哪个文件),输入以下代码:
$object = new ReflectionClass($b); $methods = $object->getMethods(); //这里之所以用getMethods(),是因为我们并不知道此类有哪些方法,所以全部获取,然后取第0个 $method = $methods[0]; $declaringclass = $method->getDeclaringClass(); $filename = $declaringclass->getFilename();
此时的$filename就是类所在的文件名。
当然,你可以写成
$filename = (new ReflectionClass($a))->getMethods()[0]->getDeclaringClass()->getFilename();
PHP利用反射根据类名反向寻找类所在文件相关推荐
- CN.Text开发笔记—利用反射将数据读入实体类
在实际开发中,我们经常需要从数据库中读取数据并赋值给实体类的相应属性.在.Text的DataDTOProvider中存在大量这样的代码, 比如: public Role[] GetRoles(int ...
- java 反射 单例类_利用反射机制破坏单例模式
简介 利用反射机制破坏了单例模式,这里以懒汉单例模式为例子进行操作. 之前利用反射也是改变了类中的private变量. 类中的private变量真的private么? 正常的单例模式的实现 这里采用了 ...
- java反射是运行时,Java反射(三)在运行时利用反射分析对象
在运行时利用反射分析对象,其实就是利用反射来获得或者设置类的域.举例如下: 有一个Student类: package testreflection; public class Student { pr ...
- C# 知识点笔记:IEnumerable的使用,利用反射动态调用方法
IEnumerable<T>的使用 创建一个IEnumerable对象 List<string> fruits = new List<string> { " ...
- 利用反射实现类的动态加载
为什么80%的码农都做不了架构师?>>> //首先定义一个接口来隔离类: public interface Operator { // public java.util.Lis ...
- C# 反射 通过类名创建类实例
"反射"其实就是利用程序集的元数据信息. 反射可以有很多方法,编写程序时请先导入 System.Reflection 命名空间. 1.假设你要反射一个 DLL 中的类,并且没有引用 ...
- 利用反射动态实例化类执行方法并传值
/// <summary> /// 利用反射动态实例化类执行方法并传值 /// </summary> /// <param ...
- 利用反射技术修改类中的字段(成员变量的反射)
题目:利用反射技术修改类中的字段及成员变量的反射 作者:Vashon 一.首先定义一个类如下: class ReflectPoint {private int x; //私有的public int y ...
- 利用反射机制创建新类的两种方式及比较
[0]README 0.1) 本文描述+源代码均 转自 http://blog.csdn.net/fenglibing/article/details/4531033 , 旨在深入理解 如何利用反射机 ...
最新文章
- Ajax+Node.js前后端交互最佳入门实践(05)
- 安卓学习-界面-ui-Toast
- 【学习笔记】JSON基础概念简介
- 【NLP实战】Task2:特征处理
- oracle 存储过程字符替换,Oracle存储过程常用字符串处理函数整理
- Linux下的删除命令
- 如何更改OST、OAB文件的默认路径?
- vue 出现Elements in iteration expect to have 'v-bind:key' directives
- 《白帽子讲web安全》学习笔记 (3)
- TFS 2005安装的注意事项
- JavaScript语言精粹 ——笔记
- lua学习笔记(三)
- 计蒜客 - T1012 A*B问题
- 共享单车需求预测问题:建模篇
- c语言汇率转换代码_C语言人民币转换代码..doc
- 【GIS开发】批量下载和拼接地图瓦片(Python)
- 安徽太极计算机 刘建春,阅读理解的检测作业
- 深度学习论文精读05——用于乳腺癌组织病理学图像分类的深度特征
- 数据恢复工具有哪些? 十个最好的数据恢复软件
- mysql时间戳与PHP时间戳,php – 当mysql时间戳gt; 20分钟时删除时间戳比较