PHP獲取指定函式定義在哪個檔案中及行號

大江小浪發表於2017-08-01

當除錯開源的程式碼時,希望檢視某個函式的定義,那麼就需要定位其位置。特別是有的專案中,函式會有多個地方都有定義,那麼如果我想知道當前呼叫的這個函式是在哪裡定義的,可以用下面這個方法。

function function_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;  
    } www.jbxue.com  
    $start = $func->getStartLine() - 1;  
    $end =  $func->getEndLine() - 1;  
    $filename = $func->getFileName();  
    echo "function $funcname defined by $filename($start - $end)
";  
} 

Zend studio 這樣的 IDE 支援跳轉到函式定義。


相關文章