当前位置:首页 > PHP教程 > php类库 > 列表

PHP通过反射方法调用执行类中的私有方法

发布:smiling 来源: PHP粉丝网  添加日期:2016-07-27 09:23:21 浏览: 评论:0 

下面我们来看一篇关于PHP通过反射方法调用执行类中的私有方法,希望这篇教程能够帮助到各位朋友,有兴趣的可以进来看看.

PHP 5 具有完整的反射 API,添加了对类、接口、函数、方法和扩展进行反向工程的能力.

下面我们演示一下如何通过反射,来调用执行一个类中的私有方法:

  1. <?php 
  2.  
  3. //MyClass这个类中包含了一个名为myFun的私有方法 
  4. class MyClass { 
  5.      
  6.     private $tmp = 'hello'
  7.      
  8.     private function myFun() 
  9.     { 
  10.         echo $this->tmp . ' ' . 'world!'
  11.     } 
  12.  
  13. //通过类名MyClass进行反射 
  14. $ref_class = new ReflectionClass('MyClass'); 
  15. //phpfensi.com 
  16. //通过反射类进行实例化 
  17. $instance  = $ref_class->newInstance(); 
  18.  
  19. //通过方法名myFun获取指定方法 
  20. $method = $ref_class->getmethod('myFun'); 
  21.  
  22. //设置可访问性 
  23. $method->setAccessible(true); 
  24.  
  25. //执行方法 
  26. $method->invoke($instance); 
  27. ?> 

Tags: PHP反射 PHP执行类 PHP私有方法

分享到: