php反射
* 反射 : 反射就是在php運行狀態(tài)中 , 擴展分析php程序 , 導出或提取出類的 方法 屬性 參數(shù) 注釋等詳細信息 這種動態(tài)獲取信息以及
* 動態(tài)調(diào)用對象方法的功能就是反射 API
* 其實說白了 反射就是 通過對象 去找到對象所屬類 和類信息
*
* 有利有弊 違背了 類的信息不被外界知道的原則 例如 私有方法 和屬性
* 反射這個東西 我自己理解的不深 但是我覺得反射應(yīng)該可以做很多事情 等以后發(fā)現(xiàn)了 再來修改吧 !^_^
擼過的代碼: 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函數(shù) 40 //獲取對象屬性關(guān)聯(lián)數(shù)組 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;
* 動態(tài)調(diào)用對象方法的功能就是反射 API
* 其實說白了 反射就是 通過對象 去找到對象所屬類 和類信息
*
* 有利有弊 違背了 類的信息不被外界知道的原則 例如 私有方法 和屬性
* 反射這個東西 我自己理解的不深 但是我覺得反射應(yīng)該可以做很多事情 等以后發(fā)現(xiàn)了 再來修改吧 !^_^
擼過的代碼: 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函數(shù) 40 //獲取對象屬性關(guān)聯(lián)數(shù)組 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;
?
轉(zhuǎn)載于:https://www.cnblogs.com/kinsFeng/p/9213345.html
總結(jié)

- 上一篇: Mac git 终端使用
- 下一篇: get请求中文乱码问题