PHP中的debug(調試)方法有:1、在PHP程式碼中加入echo、var_dump、print_r和exit語句,透過瀏覽器列印資訊進行調試;2、使用Xdebug進行調試;3、透過console終端進行偵錯。
本教學操作環境:windows7系統、PHP7.1版、DELL G3電腦
透過瀏覽器列印資訊進行偵錯
#方法
在程式碼中加入echo、var_dump、 print_r 和exit,在瀏覽器中查看輸出。
優缺點
優點:
缺點:
#技巧
偵錯時,為了格式化輸出變量,往往需要在專案中實作自己的dump()
函數。利用 Composer,可以全域安裝 symfony/var-dumper
套件中的 dump()
函數,讓所有項目都可以使用,而無需改變項目。
symfony/var-dumper
套件: ${HOME}/.config/composer
目錄composer global require symfony/var-dumper
php.ini
文件,執行PHP 程式碼之前先include 指定的文件auto_prepend_file = ${HOME}/.config/composer/vendor/autoload.php
##使用Xdebug 進行偵錯
XDebug 是C/S 結構,其中Client 是PHP 中安裝的Xdebug,Server 是IDE 中安裝的插件,使用DBGP 協定通訊。 PHP 執行腳本時,透過 Xdebug 插件向 IDE 發送偵錯訊息,並接收 IDE 發送過來的控制訊號。 需要為 PHP 安裝並開啟 Xdebug,然後設定 IDE 的 Xdebug 插件,讓二者可以通訊。優缺點
參數
Web App 偵錯
對於web 應用,要開啟Xdebug 偵錯模式,必須在瀏覽器傳送的請求中新增額外的標誌。可以在 GET/POST/Cookie 參數中加入XDEBUG_SESSION_START=session_name,這樣 Xdebug 就明白這個請求需要調試,去連接 IDE。
。
透過console 終端進行偵錯(CLI 方式)
對於非web 應用,例如定時任務或單元測試,可以直接在控制台進行調試。 PhpStorm 中透過Alt F12 快速鍵開啟命令列終端。但因為 IDE 中只能顯示一個終端,在開啟偵錯後的偵錯終端會覆蓋命令列終端,所以還是單獨開啟一個命令列終端吧(Windows 下可以使用 DOS 視窗或 PowerShell)。
方法及原理
web 應用程式透過GET/POST/Cookie 參數標誌偵錯請求,而非web 應用則透過在命令列終端設定環境變數來開啟偵錯。 兩個步驟:,這個idekey 需要跟
php.ini Xdebug部分設定的idekey 一樣。
D:\lnmp\php72\php.exe -dxdebug.remote_enable=1 -dxdebug.remote_mode=req -dxdebug.remote_port=9001 -dxdebug.remote_host=127.0.0.1 D:\lihongfeng\workspace\untitled\index.php
export XDEBUG_CONFIG="idekey=session_name" // 设置环境变量 echo $XDEBUG_CONFIG // 查看环境变量 unset XDEBUG_CONFIG // 删除环境变量
set XDEBUG_CONFIG="idekey=session_name" // 设置环境变量 echo %XDEBUG_CONFIG% // 查看环境变量 set XDEBUG_CONFIG // 查看环境变量 set XDEBUG_CONFIG= // 删除环境变量
推荐学习:《PHP视频教程》
以上是PHP有哪些debug方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!