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!
相关文章推荐
- Php利用java解析xml[原创]
- 利用Editplus2的用户工具功能来即时调试PHP
- 在PHP中利用XML技术构造远程服务(转)
- 利用PHP的GD库生成高质量的缩略图
- 利用PHP+JavaScript打造AJAX搜索窗
- 利用 QQWry.Dat 实现 IP 地址高效检索(PHP)
- php通過利用QQWry.Dat 实现 IP 地址高效检索
- 利用 gettext 来实现 PHP 的国际化编程
- 利用JS传输命令给PHP脚本
- 利用js调用后台php进行数据处理原码
- 利用 gettext 来实现 PHP 的国际化编程
- 一个利用Squid Cache 的PHP配置例子
- 在PHP中利用XML技术构造远程服务(下)
- php.exe 的利用
- 《PHP & More》第二期发布& 一些想法
- 利用 gettext 来实现 PHP 的国际化编程
- PHP中利用mysql进行访问统计的思路和实现代码
- 利用XOOPS和PHP Home Edition快速架设属于自己的个人php站点(上)
- 利用正则表达式过滤html代码(PHP)
- php中利用date(),mktime()函数得到当前月的上个月和下个月