php反射应用示例

 这篇文章主要介绍了php反射应用示例,需要的朋友可以参考下,代码很简单,直接看下面的代码吧

 
 代码如下:
<?php
function custom(){
}
 
class custom{
   public function index(){
 
   }
 }
print_r(get_define_position('custom'));
 
 /**
  * /
  * @param  string $name  函数名或者类名
  * @return array       
  */
 function get_define_position($name){
    $info = array();
    if(class_exists($name)){
      $ob = new ReflectionClass($name);
      $info['class_'.$name]= array('file'=>$ob->getFileName(),'line'=>$ob->getStartLine());
    }
    if(function_exists($name)){
      $ob = new ReflectionFunction($name);
      $info['function_'.$name]= array('file'=>$ob->getFileName(),'line'=>$ob->getStartLine());
    }
    return $info;
 }

 

时间: 2024-10-26 17:39:09

php反射应用示例的相关文章

java反射机制示例详解_java

1.什么是反射?一个类有多个组成部分,例如:成员变量,方法,构造方法等.反射就是加载类,并解剖出类的各个组成部分. 2.加载类java中有一个Class类用于代表某一个类的字节码.Class类既然代表某个类的字节码,那就要提供加载某个类字节码的方法:forName().   此方法用于加载某个类的字节码到内存中,并使用class对象进行封装.另外2种得到class对象的方式:类名.class对象.getClass() 先创建一个简单的Person类 复制代码 代码如下: public class

java反射机制示例_java

java反射 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制. 复制代码 代码如下: package C_20130313; import java.lang.reflect.Method; class User {     private String name;     public User(){}     public User(

java反射使用示例分享_java

复制代码 代码如下: public class ReflexTest {     public static void main(String[] args)      throws ClassNotFoundException, NoSuchMethodException, SecurityException,     IllegalAccessException, IllegalArgumentException, InvocationTargetException,      Instan

java类加载器和类反射使用示例_java

一.一个命令对应一个进程. 当我们启动一个Java程序,即启动一个main方法时,都将启动一个Java虚拟机进程,不管这个进程有多么复杂.而不同的JVM进程之间是不会相互影响的.这也就是为什么说,Java程序只有一个入口--main方法,让虚拟机调用.而两个mian方法,对应的是2个JVM进程,启动的是两个不同的类加载器,操作的实际上是不同的类.故而不会互相影响. 二.类加载. 当我们使用一个类,如果这个类还未加载到内存中,系统会通过加载.连接.初始化对类进行初始化. 1.类加载:指的是将类的c

反射程序集

         通过Type,我们可以对任何类型进行反射读取,同样,也可以把读取的对象的范围扩大.       一,关于程序集               在.net中,程序集是进行部署,版本控制的基本单元:               System.reflection命名空间下的Assembly类型,代表了一个程序集,并包含了关于程序集的信息.              获取assembly对象的方法:                   loadForm 参数:程序集的文件名称(如果加载

浅谈PHP的反射API

PHP的反射API,即在PHP运行状态下,通过分析PHP程序,可以导出对象所属的类,方法,属性,参数等信息. 如何使用反射API 示例代码 Person.php Person类,包含一个成员变量和三个成员方法 获取$student对象的方法和属性列表 ReflectionClass类报告了一个类的有关信息 输出结果为:name say __set __get 也可以用class函数,获取对象属性的关联数组的信息 通过class()函数获取类的信息 打印结果: 通过这个反射API,可以做hook实

Java反射机制:包括组成、结构和示例说明等内容

第1部分 Java 反射机制介绍 Java 反射机制.通俗来讲呢,就是在运行状态中,我们可以根据"类的部分已经的信息"来还原"类的全部的信息".这里"类的部分已经的信息",可以是"类名"或"类的对象"等信息."类的全部信息"就是指"类的属性,方法,继承关系和Annotation注解"等内容. 举个简单的例子:假设对于类ReflectionTest.java,我们知道的

php使用反射插入对象示例

 这篇文章主要介绍了php使用反射插入对象示例,需要的朋友可以参考下  代码如下: /**       * 插入insertModel(),利用反射,效率稍差      * @param class $model 对象     * @param bool $is_returnLastInsertId 是否返回添加ID      * @return int 默认返回成功与否,$is_returnLastInsertId 为true,返回添加ID      */      public functi

php 的反射详解及示例代码_php实例

最近在看java编程思想,看到类型信息这一章,讲到了类的信息以及反射的概念.顺便温故一下php的反射东西.手册是这样说的:"PHP 5 具有完整的反射 API,添加了对类.接口.函数.方法和扩展进行反向工程的能力. 此外,反射 API 提供了方法来取出函数.类和方法中的文档注释."当然手册上说的有些抽象!所谓的逆向说白就是能获取关于类.方法.属性.参数等的详细信息,包括注释! 文字总是那么枯燥,举个例子 class Foo { public $foo = 1; protected $b