PHP通過反射方法調用執行類中的私有方法


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);
?>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM