码迷,mamicode.com
首页 > Web开发 > 详细

PHP 利用闭包偷窥马对人类的想法

时间:2017-01-24 17:32:06      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:turn   man   learn   private   声明   getc   ref   sage   hook   

 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 利用闭包偷窥马对人类的想法

标签:turn   man   learn   private   声明   getc   ref   sage   hook   

原文地址:http://www.cnblogs.com/jingjingdidunhe/p/6347369.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!