* 反射 : 反射就是在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 .<br>'; 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 "<br>"; 32 //获取方法 33 $m = $reflect->getMethods(); 34 foreach ($m as $v){ 35 print $v->getName()."\n"; 36 } 37 echo "<br>"; 38 39 //使用class函数 40 //获取对象属性关联数组 41 var_dump(get_class_vars(get_class($a))); 42 echo "<br>"; 43 //类方法名 44 var_dump(get_class_methods(get_class($a))); 45 echo "<br>"; 46 47 echo get_class($a);exit;