php找出函数定义位置,WordPress如何快速定位PHP函数所在文件位置及代码行号?
有時(shí)候我們需要修改別人源碼里的代碼,卻找不到對應(yīng)的函數(shù)放在了哪兒,就可以用使用本文介紹的辦法,幫你快速定位函數(shù)位置。特別是某些寫法不規(guī)范的WordPress主題,各種模塊,函數(shù)到處放,找半天的那種。那么WordPress如何快速定位PHP函數(shù)所在文件位置及代碼行號?
使用同名函數(shù)
這個(gè)方法很簡單,就是利用PHP不支持函數(shù)重載原理實(shí)現(xiàn)的,也就是說不能存在相同命名的函數(shù)。當(dāng)出現(xiàn)同名函數(shù)時(shí),PHP會拋出致命錯(cuò)誤,并終止程序運(yùn)行。
Fatal error: Cannot redeclare (a) (previously declared in (b)) in (c) on line (d)
出現(xiàn)上述提示時(shí),就說明你的函數(shù)出現(xiàn)了同名。
a—-表示重復(fù)定義的函數(shù)名;
b—-第一次定義該函數(shù)時(shí)的文件名稱及行號;
c—-第二次定義該函數(shù)時(shí)的文件名稱;
d—-第二次定義該函數(shù)時(shí)的行號。
對應(yīng)函數(shù)所處位置都輸出了,非常清楚。但是,有些環(huán)境關(guān)閉了提示,PHP會直接返回HTTP500錯(cuò)誤,我們這個(gè)方法就失效了。
PHP反射類輸出函數(shù)位置
這個(gè)方法就比較好了,出來對PHP版本有限制外,都可以使用,當(dāng)然,除了古老的PHP5.2以下版本不能用,其它都是OK的。
Reflection::export(new ReflectionFunction('函數(shù)名'));
使用方法,在你要定位的函數(shù)文件中,使用上述代碼,即可。
Function [ function get_exc ] { @@ D:\phpStudy\WWW\wp-content\themes\mytheme\functions.php 118 - 130 - Parameters [1] { Parameter #0 [ $ID ] } }
輸出很詳細(xì),不僅有函數(shù)名稱,所處文件位置,函數(shù)所在起始行、結(jié)束行還有函數(shù)有幾個(gè)參數(shù),參數(shù)是什么都給顯示了出來,非常好用!推薦!
總結(jié)
以上是生活随笔為你收集整理的php找出函数定义位置,WordPress如何快速定位PHP函数所在文件位置及代码行号?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle下lag和lead分析函数
- 下一篇: ORACLE 小时值必须介于1和12之间