您的位置:首页 > 编程语言 > PHP开发

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

2017-01-24 16:11 190 查看
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!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: