首頁  >  問答  >  主體

取得PHP中有用的錯誤訊息的方法

<p>很多時候,我會嘗試執行一個PHP腳本,但只會得到一個空白畫面。沒有錯誤訊息,只有一個空白的畫面。原因可能是一個簡單的語法錯誤(錯誤的括號,缺少分號),或者是一個失敗的函數調用,或者完全是其他原因。 </p> <p>很難弄清楚出了什麼問題。我最後只能註解掉程式碼,到處加上"echo"語句,等等,試圖縮小問題的範圍。但肯定有更好的方法,對嗎? </p> <p>有沒有辦法讓PHP產生像Java一樣有用的錯誤訊息? </p>
P粉590929392P粉590929392396 天前522

全部回覆(2)我來回復

  • P粉608647033

    P粉6086470332023-08-21 13:56:06

    以下程式碼啟用所有錯誤:

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

    也可以參考以下連結:

    #

    回覆
    0
  • P粉817354783

    P粉8173547832023-08-21 00:11:04

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

    請查看PHP文件中的此頁面,以了解有關兩個指令的資訊:error_reportingdisplay_errors。您可能想更改的是display_errors

    所以您有3個選項:

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

    (2) 您可以新增以下2行程式碼,以協助您偵錯在相同檔案中發生的非語法錯誤:

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

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

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

    php_flag  display_errors        on
    php_value error_reporting       -1

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

    回覆
    0
  • 取消回覆