php找出函數定義位置,WordPress如何快速定位PHP函數所在文件位置及代碼行號?

有時候我們需要修改別人源碼里的代碼,卻找不到對應的函數放在了哪兒,就可以用使用本文介紹的辦法,幫你快速定位函數位置。特別是某些寫法不規范的WordPress主題,各種模塊,函數到處放,找半天的那種。那么WordPress如何快速定位PHP函數所在文件位置及代碼行號?

81ef06d8a95f919078527a7b2c971acd.png

使用同名函數

這個方法很簡單,就是利用PHP不支持函數重載原理實現的,也就是說不能存在相同命名的函數。當出現同名函數時,PHP會拋出致命錯誤,并終止程序運行。

Fatal error: Cannot redeclare (a) (previously declared in (b)) in (c) on line (d)

出現上述提示時,就說明你的函數出現了同名。

a—-表示重復定義的函數名;

b—-第一次定義該函數時的文件名稱及行號;

c—-第二次定義該函數時的文件名稱;

d—-第二次定義該函數時的行號。

對應函數所處位置都輸出了,非常清楚。但是,有些環境關閉了提示,PHP會直接返回HTTP500錯誤,我們這個方法就失效了。

PHP反射類輸出函數位置

這個方法就比較好了,出來對PHP版本有限制外,都可以使用,當然,除了古老的PHP5.2以下版本不能用,其它都是OK的。

Reflection::export(new ReflectionFunction('函數名'));

使用方法,在你要定位的函數文件中,使用上述代碼,即可。

Function [ function get_exc ] { @@ D:\phpStudy\WWW\wp-content\themes\mytheme\functions.php 118 - 130 - Parameters [1] { Parameter #0 [ $ID ] } }

輸出很詳細,不僅有函數名稱,所處文件位置,函數所在起始行、結束行還有函數有幾個參數,參數是什么都給顯示了出來,非常好用!推薦!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/537910.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/537910.shtml
英文地址,請注明出處:http://en.pswp.cn/news/537910.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

微信公眾號每次調用接口正確或錯誤的返回碼

原文連接:https://blog.csdn.net/pansanday/article/details/65448868 ----------------------------------------- 公眾號每次調用接口時,可能獲得正確或錯誤的返回碼,開發者可以根據返回碼信息調試接口,排查錯誤。 全局返回碼…

Phoenix:全局索引設計實踐

概述 全局索引是Phoenix的重要特性,合理的使用二級索引能降低查詢延時,讓集群資源得以充分利用。 本文將講述如何高效的設計和使用索引。 全局索引說明 全局索引的根本是通過單獨的HBase表來存儲數據表的索引數據。我們通過如下示例看索引數據和主表數據…

php 美顏,懷念以前無濾鏡美顏的影視劇

濾鏡是為了照片質量更高一些,色彩更真實突出的一種補助工具。自從有了美顏和濾鏡后,大家的生活都變成了彩色。開了濾鏡美顏,小伙伴們有木有感覺生活水平變高了?但影視劇,好像變成了單色?!(注意&…

select2控件動態更新option

原文連接:https://blog.csdn.net/u010784959/article/details/77893674 ----------------------------------------------------------------------------- 根據輸入框中內容,動態更新select2組件中option內容 監聽輸入框內容變化事件,先銷…

在Python中定義和使用抽象類的方法

https://www.jb51.net/article/87710.htm 像java一樣python也可以定義一個抽象類。 在講抽象類之前,先說下抽象方法的實現。 抽象方法是基類中定義的方法,但卻沒有任何實現。在java中,可以把方法申明成一個接口。而在python中實現一個抽象方法…

把 Rational Rose 的圖表保存為圖片文件

原文連接:https://blog.csdn.net/xiaobing_122613/article/details/56485456 ------------------------------------------------ Rational Rose 本身沒有保存為 JPG/GIF 圖片格式的功能。 1. 可以通過全選、復制、粘貼可以把圖表直接粘貼到打開的 Word 文檔里 …

lppl模型 matlab,對LPPL模型的思考

2013-05-10 16:19:29最近,LPPL模型在金融市場中的運用越來越廣,LPPL模型認為金融市場處于自組織臨界狀態,泡沫的產生往往伴隨著市場參與者之間行為的正反饋作用,泡沫也會因此越來越大,并在奇點處崩潰,詳細介…

代碼質量管理工具】——sonar

原文地址:https://blog.csdn.net/luckystar689/article/details/53871821 ------------------------------------------------------------------------ 【前言】 bug越改越多,程序一換數據就崩,這就是目前我們系統的一個現狀。在這之前&am…

馬凱軍201771010116《面向對象程序設計(java)》第二周學習總結

第一部分:理論知識學習部分 (1)基本知識:簡單應用程序的結構;Java環境里的注釋方式; (2)數據類型(4種整型、2種浮點型、1種字符型‘char’、真值型‘Boolean’。 &#x…

【代碼質量管理工具】-由sonar引發的思考

原文路徑:https://blog.csdn.net/luckystar689/article/details/53968102 ---------------------------------------------------------------------------------------- 之前,在看《笑傲江湖》的時候,郭德綱在給一對夫妻的表演做評審的時候…

php curl 模擬多線程,php利用curl 多線程 模擬 并發的詳解

php利用curl 多線程 模擬 并發的詳解發布于 2014-12-07 10:17:25 | 265 次閱讀 | 評論: 0 | 來源: 網友投遞PHP開源腳本語言PHP(外文名: Hypertext Preprocessor,中文名:“超文本預處理器”)是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點&…

新版DAEMON Tools Lite打不開 bin 文件解決方法

DAEMON Tools Lite 支持打開 *.cue 解決方法很簡單:將*.bin 重命名為 *.cue 就可以打開

Linux集群架構(LVS DR模式搭建、keepalived + LVS)

為什么80%的碼農都做不了架構師?>>> LVS DR模式搭建 準備工作:三臺機器 分發器,也叫調度器(簡寫為dir):192.168.248.128 rs1 :192.168.248.129 rs2 : 192.168.248.130 vip : 192.16…

java手機狀態欄圓形圖標,android實現狀態欄添加圖標的函數實例

本文實例講述了android實現狀態欄添加圖標的函數。分享給大家供大家參考。具體如下:private void showNotification() {// 創建一個NotificationManager的引用NotificationManager notificationManager (NotificationManager)AutoFile.this.getSystemService(andro…

Windows下SVN回滾到舊版本(TortoiseSVN)

原文地址:https://www.cnblogs.com/tommy-huang/p/4729634.html ---------------------------------------- 當發現新提交的代碼有問題,然后想將某個舊的版本作為最新的版本時,可以使用回滾, 操作步驟如下: 1. 簽出…

看懂架構設計中的服務隔離

前言 我們在做系統架構設計的時候,經常離不開的一個話題就是進行服務的隔離設計。 那什么是「服務隔離」呢? 顧名思義,它是指將系統按照一定的原則劃分為若干個服務模塊,各個模塊之間相對獨立,無強依賴。當有故障發生時…

2018最新蘋果APP上架App Store流程(超詳細)

內容很豐富,點擊查看博文 https://blog.csdn.net/xxw888/article/details/73618837/

[五] JavaIO之InputStream OutputStream簡介 方法列表說明

InputStream 和 OutputStream 對于字節流的輸入和輸出 是作為協議的存在 所以有必要了解下這兩個類提供出來的基本約定 這兩個類是抽象類,而且基本上沒什么實現,都是依賴于子類具體的去實現 但是他是對于其子類 協議綱領一般的存在 了解清楚每一個方法含義,對于后續具體的子類將…

Mysql yum 安裝后,一些重要的文件路徑

默認配置文件路徑: 配置文件:/etc/my.cnf 日志文件:/var/log//var/log/mysqld.log 服務啟動腳本:/usr/lib/systemd/system/mysqld.service socket文件:/var/run/mysqld/mysqld.pid #(a)數據庫目錄 /var/lib/mysql…

mysql雙機熱備 配置文件,MYSQL 雙機熱備配置手冊()

[原創] MYSQL 雙機熱備配置手冊[原創]http://www.chinaunix.net 作者:squall1 發表于:2007-07-23 19:01:43【發表評論】【查看原文】【存儲備份之家討論區】【關閉】作者:CU-squall發表于:2005年4月18日 8:21 可以不經作者同意自由傳播&…