生活随笔
收集整理的這篇文章主要介紹了
PHP - NetBeans中调试PHP
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
準備工作 啟用 XDebug 如何使用 XDebug 進行 PHP 調試 調試區域窗口 調試會話 樣例調試會話 PHP 和 HTML 混合用例 要學習本教程,您需要具備以下軟件和資源。
軟件或資源 要求的版本
NetBeans IDE PHP PHP 引擎版本 5
Web 服務器 推薦使用 Apache HTTP Server 2.2。
PHP 調試器 XDebug 2.0 或更高版本
準備工作 要在適用于 PHP 的 NetBeans IDE 中成功調試 PHP 應用程序,您需要為進行 PHP 開發安裝并配置 PHP 引擎、Apache 本地 Web 服務器和 XDebug 調試器。
啟用 XDebug 安裝 XDebug 后,您必須在 PHP 引擎中啟用它。
啟用 XDebug:
找到 PHP 引擎所使用的 php.ini 文件。如果運行 phpinfo(),此文件將顯示在第一個表中的 "Loaded Configuration File"(已裝入的配置文件)表頭下。 在裝入的 php.ini 中取消注釋或添加以下行: zend_extension_ts="<path to the php folder>/php_xdebug-2.0.2-5.2.5.dll"
xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp 有關如何配置 XDebug 的詳細信息,請單擊此處。 注意: 請確保您指定的路徑與安裝過程中所確定的相應文件的位置匹配。 如果使用 XAMPP 包,則需要禁用 Zend 優化器,因為它會阻止 XDebug。找到相關行,然后刪除它們或將其標記為注釋。 注意: 如果使用 XAMPP Lite,則需要對以下兩個 php.ini 文件進行上述更改: /xampplite/php/php.ini /xampplite/apache/bin/php.in 如何使用 XDebug 進行 PHP 調試 如果在 php.ini 文件中啟用了 XDebug,XDebug 便可以隨時暫停和恢復 PHP 程序執行。當程序執行暫停時,XDebug 可以檢索有關當前程序狀態的信息,例如讀取程序變量的值。實際上,此過程可以用下列工作流來表示:
用戶在 PHP 源代碼執行應該暫停的行上設置一個斷點。 當到達此行時,用戶按 F7 和 F8 鍵逐行執行腳本,并檢查變量的值。 調試器窗口 啟動調試會話時,將在主編輯器窗口下打開一組調試器窗口。要添加新窗口,請選擇“窗口”>“調試”。可以使用下列窗口:
“局部變量”窗口,顯示已初始化的變量及其類型和值的列表。 “監視”窗口,顯示用戶定義的表達式及其值的列表。 “調用棧”窗口,按倒序顯示被調用函數的列表。最后調用的函數將顯示在列表頂部。 “斷點”窗口,顯示設置了斷點的行所在的文件以及行號的列表。 “會話”窗口,顯示當前活動調試會話的列表。 “線程”窗口 “源”窗口 “HTTP 客戶端監視器”窗口 調試會話 以下過程是典型調試會話的工作流。
運行調試會話:
啟動 IDE,運行項目,然后打開包含要調試的源代碼的文件。 將光標置于某一行上,您希望在該行之前自動執行 PHP 腳本。 要設置斷點,請按 Ctrl-F8 組合鍵或選擇“調試”>“開啟/關閉行斷點”。 在“項目”窗口中,導航至當前項目節點,單擊鼠標右鍵,然后從彈出式菜單中選擇“調試”。IDE 將打開調試器窗口并在調試器中運行該項目,直至到達斷點為止。 注意: 如果當前項目設置為主項目,則可以選擇“調試”>“調試主項目”,按 Ctrl-F5 組合鍵或單擊 。 切換至“局部變量”窗口。該窗口顯示當前函數中已初始化的所有變量及其類型和值。 要查看該函數外部的變量值,請將光標置于此變量出現的某個位置上。工具提示會顯示變量值。 要逐行(包括所有被調用函數中的行)執行程序,請按 F7 鍵或選擇“調試”>“步入”,然后在“局部變量”窗口中監視這些變量值的更改。 要通過監視表達式的更改來檢查程序邏輯,請定義一個新監視: 要打開“監視”窗口,請選擇“窗口”>“調試”>“監視”,或按 Ctrl-Shift-2 組合鍵。將打開“監視”窗口。 在“監視”窗口中的任意位置單擊鼠標右鍵,然后從彈出式菜單中選擇“新建監視”。將打開“新建監視”窗口。 輸入監視表達式,然后單擊“確定”。 現在,您便可以在調試過程中進行其他檢查。 要取消對某個函數中代碼的逐行執行操作并跳至該函數調用后的下一行,請按 Ctrl-F7 組合鍵或選擇“調試”>“步出”。 要跳過對某個函數中代碼的逐行執行操作,獲取該函數返回的值,并跳至該函數調用后的下一行,請按 F8 鍵或選擇“調試”>“步過”。 要暫停調試會話,請選擇“調試”>“暫停”。 要繼續調試會話,請選擇“調試”>“繼續”或按 。 要取消調試會話,請按 。 在程序結束時,調試器窗口會關閉。
樣例調試會話 此部分說明了一個標準的調試會話。
使用以下參數創建新的 PHP 項目: 項目類型 - PHP 應用程序 源位置 - htdocs 文件夾的缺省位置 運行配置 - 本地 Web 站點 有關設置 PHP 項目的更多詳細信息,請參見設置 PHP 項目文檔。 在項目創建完成后,將光標置于“源文件”節點上,從彈出式菜單中選擇“屬性”,然后打開“調試”窗口。選中“調試服務器端 PHP”復選框。 要在會話過程中使用熱鍵,請將光標置于項目節點上,然后從彈出式菜單中選擇“設置為主項目”。 在 index.php 文件中,輸入以下代碼: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>NetBeans PHP debugging sample</title></head>
<body><?php$m=5;$n=10;$sum_of_factorials = calculate_sum_of_factorials ($m, $n);echo "The sum of factorials of the entered integers is " . $sum_of_factorials;function calculate_sum_of_factorials ($argument1, $argument2) {$factorial1 = calculate_factorial ($argument1);$factorial2 = calculate_factorial ($argument2);$result = calculate_sum ($factorial1, $factorial2);return $result;}function calculate_factorial ($argument) {$factorial_result = 1;for ($i=1; $i<=$argument; $i++) {$factorial_result = $factorial_result*$i;}return $factorial_result;}function calculate_sum ($argument1, $argument2) {return $argument1 + $argument2;}
?></body>
</html> 該代碼包含三個函數: calculate_factorial () 函數 calcualte_sum () 函數 calculate_sum_of_factorials () 函數,該函數調用 calculate_factorial () 函數兩次,再調用 calcualte_sum () 函數一次,然后返回計算的階乘和。 在 PHP 塊的開頭設置一個斷點 (Ctrl-F8): <?php 要啟動調試,請單擊 。調試器將在斷點處停止。 按 F7 鍵三次。調試器將在調用函數 calculate_sum_of_factorials () 的行上停止。“局部變量”窗口會顯示變量 $m 和 $n 以及它們的值: 要步入函數 calculate_sum_of_factorials (),請按 F7 鍵。調試器開始執行函數 calculate_sum_of_factorials () 中的代碼,然后在函數 calculate_factorial () 的調用處停止。 現在,“局部變量”窗口將顯示函數 calculate_sum_of_factorials () 中聲明的局部變量 $argument1 和 $argument2。 按 F7 鍵。調試器開始執行函數 calculate_factorial () 中的代碼。“調用棧”窗口將按倒序顯示函數的調用棧,最后調用的函數位于列表頂部: 按 F7 鍵步入循環。可在“局部變量”窗口中查看變量值。 如果您確定代碼運行正常,請按 Ctrl-F7 組合鍵取消函數執行。程序將在調用函數 calculate_factorial () 后返回至下一行。 注意: 您也可以按 F7 鍵,直到程序執行完函數 calculate_factorial () 為止。您也會在調用該函數后返回至下一行。 由于您剛檢查了函數 calculate_factorial (),并且確定其運行正常,因此可以跳過對該函數的再次執行操作(“步過”)。要步過該函數,請按 F8 鍵。程序將在函數 calculate_sum () 的調用處停止。 要步入函數 calculate_sum (),請按 F7 鍵。 要步過該函數,請按 F8 鍵。對于任何一種情況,調試器都會在函數 calculate_sum_of_factorials () 的最后一行停止。 按 F7 鍵。調試器將移到 echo 語句所在的行上。 按 F7 鍵,直到調試器退出程序為止。將打開瀏覽器窗口并顯示程序執行的結果: 使用其他監視 可以定義其他監視表達式來跟蹤程序的執行。這有助于捕獲錯誤。
按如下所示更新代碼(將加號替換為減號): function calculate_sum ($argument1, $argument2) {return $argument1 - argument2;} 假定運算符的改變是由于拼寫錯誤造成的,而實際上您需要計算和。 選擇“調試”>“新建監視”或按 Ctrl-Shift-F6 組合鍵。將打開“新建監視”窗口。 輸入以下表達式,然后單擊“確定”。 $factorial1+$factorial2 “監視”窗口中將顯示新表達式。 運行調試會話。當調試器在以下行停止時 return $result; 將“監視”窗口中表達式的值與“局部變量”窗口中 $result 的值進行比較。它們應該相同,但在此示例中不同。 此示例非常簡單,它為您提供了使用監視的一些基本概念。
PHP 和 HTML 混合用例 您可以調試同時包含 PHP 塊和 HTML 塊的代碼。在樣例調試會話部分的示例中,對值進行了固定編碼。現在,將通過用于輸入值的 HTML 輸入表單來擴展該代碼。
在 <?php ?> 塊的上方添加以下 HTML 代碼: <form action="index.php" method="POST">Enter the first integer, please: <input type="text" name="first_integer"/><br/> Enter the second integer, please: <input type="text" name="second_integer"/><br/> <input type="submit" name="enter" value="Enter"/> </form> 有關詳細信息,請參見 HTML 輸入表單。
將 <?php ?> 塊頂部的以下行: $m=5;$n=10;$sum_of_factorials = calculate_sum_of_factorials ($m, $n);echo "The sum of factorials of the entered integers is " . $sum_of_factorials; 替換為以下代碼: if (array_key_exists ("first_integer", $_POST) && array_key_exists ("second_integer", $_POST)) {$result = calculate_sum_of_factorials ($_POST["first_integer"], $_POST["second_integer"]); echo "Sum of factorials is " . $sum_of_factorials; } 在 <?php ?> 塊的開頭設置一個斷點,然后啟動調試會話。 按 F7 鍵。調試器將步入程序。同時,會打開瀏覽器窗口,但不顯示輸入表單。這是調試器的正確行為,因為它必須首先通過 Web 頁的整個源代碼,然后才能顯示該頁面。實際上,這意味著調試器通過了兩次代碼。第一次是調試器處理代碼以顯示 HTML 輸入表單。第二次是調試器逐步執行 PHP 代碼。 按 F7 鍵,直到調試器到達程序末尾并且打開輸入表單為止。 填寫該表單,然后單擊 Enter 鍵。將繼續調試會話(如樣例調試會話部分中所述)。
轉載于:https://www.cnblogs.com/huangjacky/archive/2010/12/30/1921636.html
總結
以上是生活随笔 為你收集整理的PHP - NetBeans中调试PHP 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。