PHP 5 具有完整的反射 API,添加了對類、接口、函數、方法和擴展進行反向工程的能力。
下面我們演示一下如何通過反射,來調用執行一個類中的私有方法:
<?php //MyClass這個類中包含了一個名為myFun的私有方法 class MyClass { private $tmp = 'hello'; private function myFun() { echo $this->tmp . ' ' . 'world!'; } } //通過類名MyClass進行反射 $ref_class = new ReflectionClass('MyClass'); //通過反射類進行實例化 $instance = $ref_class->newInstance(); //通過方法名myFun獲取指定方法 $method = $ref_class->getmethod('myFun'); //設置可訪問性 $method->setAccessible(true); //執行方法 $method->invoke($instance); ?>
轉自http://www.sunbloger.com/article/515.html