PHP利用反射根據類名反向尋找類所在文件


有時候分析源碼時,會被博大精深的層層代碼搞得暈頭轉向,不知道類是定義在哪個文件里的,有時候IDE所提供的方法聲明未必准確。在這種情況下,我們可以利用反射找到類所在的文件。

在你發現實例化類的地方(例如class1中發現了class2的實例化,但是你不知道class2定義在哪個文件),輸入以下代碼:

$object = new ReflectionClass($b);
$methods = $object->getMethods(); //這里之所以用getMethods(),是因為我們並不知道此類有哪些方法,所以全部獲取,然后取第0個
$method = $methods[0]; 
$declaringclass = $method->getDeclaringClass();
$filename = $declaringclass->getFilename();

此時的$filename就是類所在的文件名。

當然,你可以寫成

$filename = (new ReflectionClass($a))->getMethods()[0]->getDeclaringClass()->getFilename();

 


免責聲明!

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



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