利用反射類定位php的函式定義的物理位置
阿新 • • 發佈:2019-02-01
當遇到一堆,過程化開發的專案,例如destoon之流,一坨一坨的函式,而且麼有註釋,那你就苦了,想找到一個函式定義的檔案位置,除了編輯器自帶的jumpto 【有時還不太準確】功能外,自己封裝一個func_dump()函式,檢視定義位置及函式資訊也是一個不錯的選擇。
程式碼:
test.php檔案:
<span style="font-size:18px;"><?php
class b {
public function f() {
}
}
function a() {
}</span>
locFunc.php檔案
無論是函式還是方法,都適用的!不妨一試。<span style="font-size:18px;"><?php require 'func.php'; function func_dump($funcname) { try{ if(is_array($funcname)) { $func = new ReflectionMethod($funcname[0], $funcname[1]); $funcname = $funcname[1]; } else { $func = new ReflectionFunction($funcname); } }catch (ReflectionException $e) { echo $e->getMessage(); return; } $start = $func->getStartLine(); $end = $func->getEndLine(); $filename = $func->getFileName(); echo "函式{$funcname}被定義在【{$filename}】檔案中第{$start}行到{$end}行\n"; } //func_dump('a'); func_dump(array('b', 'f')); //$b = new b(); //func_dump(array($b, 'f')); ?></span>