首页 > 代码库 > PHP 利用闭包偷窥马对人类的想法
PHP 利用闭包偷窥马对人类的想法
1 <?php 2 3 /** 4 * reference:http://www.php.net/manual/en/reflectionmethod.getclosure.php 5 * Learn this and you will know How to peer through what a horse is thinking! 6 * 7 * Class Client 8 */ 9 class People 10 { 11 private $heartWords = "How beautiful the horse is!I want to ride it!"; 12 13 public function hook() 14 { 15 $who = get_class($this); 16 echo ucfirst($who). " says :".$this->heartWords. "\n"; 17 } 18 19 public function peer() 20 { 21 return function(){ 22 $this->hook(); 23 }; 24 } 25 } 26 27 class Horse 28 { 29 private $heartWords = "How silly the guy is! A big ass!"; 30 } 31 32 $people = new People(); 33 $horse = new Horse(); 34 35 try{ 36 $reflection = new ReflectionClass(get_class($people)); 37 } 38 catch(ReflectionException $e) 39 { 40 echo $e->getMessage() ."\n"; 41 return; 42 } 43 44 $closure = $reflection->getMethod(‘hook‘)->getClosure($people); 45 $truth = $closure->bindTo($horse,$horse); 46 47 $truth(); // Horse says :How silly the guy is! A big ass!
注:本人郑重声明,此比喻只为加深对该例子的理解,无诋毁人类之意。
PHP 利用闭包偷窥马对人类的想法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。