Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124

Xdebug 介紹
Xdebug 是專為 PHP 設計的擴充套件,提供強大的調試與性能分析功能,包括遠端調試、斷點設置和函式追蹤等。
VSCode 整合
可以將 Xdebug 與 VSCode 整合,以實現更高效的除錯流程,適合初學者和有經驗的開發者。
在使用 Xdebug 進行除錯時,您可能會遇到一些常見問題,例如連接失敗或設定錯誤。這些問題通常可以透過檢查 Xdebug 的設置來解決。在此,我們將探討一些常見的問題及其解決方案。
對於 Mac 用戶,您可以透過 Homebrew 安裝 Xdebug,這是相對簡單的方法。只需運行以下命令即可完成安裝:brew install [email protected]。
Windows 的 xDebug 版本可以在 https://xdebug.org/download#releases 下載
把下載的 PHP 8.3 TS VS16 (64 bit) 檔案,放在 php\ext 目錄下
為了確保 Xdebug 能夠正常運行,建議使用 Xdebug 的官方文檔,以獲取更詳細的設定說明和範例。
此外,確保在開發期間使用的 PHP 版本與 Xdebug 版本相匹配,例如,如果使用的是 PHP 8.3,就需要下載相應版本的 Xdebug。

在 php.ini 中加入下列的參數
[XDebug]
zend_extension = "php_xdebug-3.4.2-8.3-ts-vs16-x86_64.dll"
xdebug.mode = debug,develop
xdebug.discover_client_host = yes
xdebug.log_level = 0
xdebug.log = "W:/nginx/logs/xdebug_log.txt"
xdebug.start_with_request = yes
xdebug.idekey = VSCODE執行 php -v 時應該會有 Xdebug 的訊息如下
在這個部分,我們將更深入地探討如何確認 Xdebug 是否已成功安裝並運行。可以執行 php -m 命令以查看當前啟用的擴充套件列表,這樣便能確認 Xdebug 是否在其中。
PS W:\nginx\html\twingo> php -v
PHP 8.3.20 (cli) (built: Apr 8 2025 22:02:24) (ZTS Visual C++ 2019 x64)
Copyright (c) The PHP Group
Zend Engine v4.3.20, Copyright (c) Zend Technologies
with Xdebug v3.4.2, Copyright (c) 2002-2025, by Derick Rethans在撰寫 PHP 程式時,特別注意代碼邏輯的清晰和結構的合理性,這樣能夠使偵錯過程更為簡便。在此,我們提供一個範例,展示如何利用 Xdebug 進行有效的程序控制。
加入兩個: “Listen for Xdebug” & “Launch current script in console” 設定檔如下:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Launch current script in console",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"externalConsole": false,
"port": 9003
},
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": [
9003,
9000
]
}
]
}
在進行偵錯時,您可以使用 Xdebug 的跟踪功能,這將幫助您了解函數是如何被調用的,並查看每次調用的變數狀態。這對於分析複雜的應用程式特別有用。
// FuncTest.php
<?php
function callbackFunction()
{
echo 'Hello World!';
}
// 將 callbackFunction() 以字串參數的方式傳入 call_user_func()
// 這個時候會執行外部的函式 callbackFunction()
call_user_func('callbackFunction');
// 執行結果
// Hello World!在實際開發中,這種偵錯方式非常適合處理複雜的 PHP 程式,尤其是對於資料庫操作或 API 呼叫,能夠逐步確認每一步的運行結果,確保程式的穩定性和正確性。
上面的 FuncTest.php 程式,是藉由 call_user_func 來作 Callback (回呼函式) 測試。
此外,確保在 VSCode 中正確載入您需要的 PHP 擴展,以獲取最佳的開發體驗。使用 php -m 命令檢查擴展列表,確認 Xdebug 是否已啟用。

這個過程中,特別注意紅色偵錯點的設置,可以在需要檢查的行前點擊,來設置斷點。如果你發現無法正常進行偵錯,檢查您的 Xdebug 和 VSCode 的配置設置是否正確,尤其是 port 的配置。
當您逐行執行程式時,可以使用 Debug Console 來檢查變數的值和程式的執行流程,這是偵錯過程中非常有用的功能。VSCode 提供了清晰的介面讓您能輕鬆查看執行狀態和變數的變化。
這樣就可以逐行執行程式,並在下面的 Debug Console 視窗中看到執行輸出的結果了。