* 反射 : 反射就是在php运行状态中 , 扩展分析php程序 , 导出或提取出类的 方法 属性 参数 注释等详细信息 这种动态获取信息以及 * 动态调用对象方法的功能就是反射 API * 其实说白了 反射就是 通过对象 去找到对象所属类 和类信息 * * 有利有弊 违背了 类的信息不被外界知道的原则 例如 私有方法 和属性 * 反射这个东西 我自己理解的不深 但是我觉得反射应该可以做很多事情 等以后发现了 再来修改吧 !^_^ 撸过的代码:
1 class Answer{ 2 public $a = 1; 3 private $name; 4 5 public function __set($name, $value) 6 { 7 // TODO: Implement __set() method. 8 $this->$name = $value; 9 }10 11 public function run()12 {13 return 'Hey '.$this->name.' ! just run .';14 }15 }16 17 18 $a = new Answer();19 $a->name = 'kins';20 echo $a->run();21 22 23 //反射24 25 //获取属性26 $reflect = new ReflectionObject($a);27 $props = $reflect->getProperties();28 foreach ($props as $prop){29 print $prop->getName()."\n";30 }31 echo "";32 //获取方法33 $m = $reflect->getMethods();34 foreach ($m as $v){35 print $v->getName()."\n";36 }37 echo "";38 39 //使用class函数40 //获取对象属性关联数组41 var_dump(get_class_vars(get_class($a)));42 echo "";43 //类方法名44 var_dump(get_class_methods(get_class($a)));45 echo "";46 47 echo get_class($a);exit;