vczh:
反射是用来做library的,不是用来做业务的。程序员就是控制不住自己啊,东西放在那里就一定要用,不然就手痒。 倪炜:
反射机制一般用在逻辑比较固化的框架层面的,业务层面用反射有点蛋疼和装逼了。性能倒不是什么大问题,主要缺陷是反射使静态分析代码执行路径更困难。
java版:
[url=][/url]
package com.tsh.test;import java.lang.reflect.Method;public class Home { public static void main(String[] args) { Test2 t=new Test2(); t.say(); }}class Test{ public Test() { super(); } public void say(){ }}//使用反射获取Test类的方法class Test2{ public void say(){ try { Class c=Class.forName("com.tsh.test.Test"); Method[] methods=c.getMethods(); for(Method m:methods){ System.out.println(m.getName()); } } catch (ClassNotFoundException e) { e.printStackTrace(); } }}[url=][/url]
PHP中反射是什么?
它是指在PHP运行状态中,扩展分析PHP程序,导出或提取出关于类、方法、属性、参数等的详细信息,包括注释
PHP版:
[url=][/url]
<?phpnamespace one;class Test{ public function __construct(){ } public function say(){ }}$reflectionClass=new \ReflectionClass("\one\Test");print_r($reflectionClass->getMethods());?>[url=][/url]