搜尋

首頁  >  問答  >  主體

如何在 PHP 中獲取有用的錯誤訊息?

<p>我經常嘗試運行 PHP 腳本,但只是得到一個空白畫面。無錯誤訊息;只是一個空螢幕。原因可能是一個簡單的語法錯誤(錯誤的括號,缺少分號),或失敗的函數調用,或完全是其他原因。 </p> <p>很難找出問題所在。我最後註解掉了程式碼,在各處輸入「echo」語句等等,試圖縮小問題範圍。但肯定有更好的方法,對嗎? </p> <p>有沒有辦法讓 PHP 產生有用的錯誤訊息,就像 Java 一樣? </p>
P粉283559033P粉283559033457 天前529

全部回覆(2)我來回復

  • P粉190883225

    P粉1908832252023-08-24 14:59:54

    以下啟用所有錯誤:

    ini_set('display_startup_errors', 1);
    ini_set('display_errors', 1);
    error_reporting(-1);

    另請參閱以下連結

    #

    回覆
    0
  • P粉575055974

    P粉5750559742023-08-24 14:00:05

    預設情況下,顯示錯誤處於關閉狀態,因為您不希望「客戶」看到錯誤訊息。

    查看 PHP 文件中的此頁面有關 2 個指令的資訊:error_reportingdisplay_errorsdisplay_errors 可能是您想要更改的錯誤。

    所以你有3個選擇:

    (1) 您可以檢查錯誤日誌文件,因為它將包含所有錯誤(除非日誌記錄已停用)。若要啟用錯誤日誌記錄,請確保將 log_errors 設定指令設定為 On。當錯誤不是在 PHP 中發生而是由 Web 伺服器發出時,日誌也很有用。

    (2) 您可以新增以下兩行,這將幫助您偵錯在同一文件中發生的非語法錯誤的錯誤:

    error_reporting(E_ALL);
    ini_set('display_errors', 'On');

    請注意,在實時伺服器上,後者應設定為關閉(但僅限後者,因為您仍然需要從日誌檔案中了解發生的所有錯誤)。

    但是,對於同一檔案中發生語法錯誤,上述命令將不起作用,您需要在 php.ini 中啟用它們。如果您無法修改 php.ini,您也可以嘗試將以下幾行新增至 .htaccess 檔案中,儘管現在很少支援:

    php_flag  display_errors        on
    php_value error_reporting       -1

    (3) 另一種選擇是使用編輯器在您鍵入時檢查錯誤,例如 PhpEd、VSCode 或 PHPStorm。它們都附帶一個調試器,可以提供更詳細的資訊。 (PhpEd 偵錯器與 xdebug 非常相似,並且直接整合到編輯器中,因此您可以使用 1 個程式來完成所有操作。)

    回覆
    0
  • 取消回覆