首頁  >  文章  >  後端開發  >  如何進行php.ini報錯設定

如何進行php.ini報錯設定

藏色散人
藏色散人原創
2021-03-05 17:58:183234瀏覽

php.ini報錯設定的方法:先找到並開啟php.ini設定檔;然後設定內容為「error_reporting=E_ALL display_errors=On」即可。

如何進行php.ini報錯設定

本文操作環境:windows7系統、PHP7.1版,DELL G3電腦

PHP 開啟錯誤顯示並設定錯誤報告等級

警告:生產環境永遠不要顯示任何錯誤訊息!

顯示錯誤(display_errors)和錯誤報告(error_reporting)是兩回事。 PHP 腳本發生錯誤時,可以根據設定選擇是否報告這個錯誤(記錄到錯誤日誌中),如果設定中開啟了 display_errors,則同時把錯誤訊息列印到螢幕上。

專案中常用的設定

switch (ENVIRONMENT)
{
    // 对于开发环境,报告所有错误,同时显示到屏幕上
    case 'development':
        error_reporting(-1);
        ini_set('display_errors', 1);
    break;

    // 对于测试和生产环境,不显示错误,5.3 以上的版本,不报告通知、废弃方法、严格这几类错误
    case 'testing':
    case 'production':
        ini_set('display_errors', 0);
        if (version_compare(PHP_VERSION, '5.3', '>='))
        {
            error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT & ~E_USER_NOTICE & ~E_USER_DEPRECATED);
        }
        else
        {
            error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE);
        }
    break;

    default:
        header('HTTP/1.1 503 Service Unavailable.', TRUE, 503);
        echo 'The application environment is not set correctly.';
        exit(1); // EXIT_ERROR
}

PHP 預先定義的錯誤常數

官網定義了所有的錯誤常數,常用的有:

  • E_STRICT (integer) PHP 對程式碼的修改建議,以確保程式碼具有最佳的互通性和向前相容性。
  • E_ALL (integer) E_STRICT外的所有錯誤和警告訊息。
  • E_ERROR (integer) 致命的執行階段錯誤。這類錯誤一般是不可恢復的情況,例如記憶體分配所導致的問題。後果是導致腳本終止不再繼續運作。
  • E_WARNING (integer) 執行時期警告 (非致命錯誤)。僅給出提示訊息,但是腳本不會終止運行。
  • E_PARSE (integer) 編譯時語法解析錯誤。解析錯誤僅由分析器產生。
  • E_NOTICE (integer) 執行時期通知。表示腳本遇到可能會表現為錯誤的情況,但是在可以正常運作的腳本裡面也可能會有類似的通知。

在程式碼中開啟並設定顯示等級

ini_set() 函數

對於PHP,可以通過php.ini 檔案設定各種指令。但有時候需要在腳本執行時設定指令,那就需要 ini_set() 函數了。

string ini_set ( string $varname , string $newvalue )

設定指定配置選項的值。這個選項會在腳本運行時保持新的值,並在腳本結束時恢復。

例如:

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

error_reporting() 函數

error_reporting() 函數能夠在執行時間設定 error_reporting 指令。 PHP 有許多錯誤級別,使用函數可以設定在腳本運行時的級別。如果沒有設定可選參數, error_reporting() 會傳回目前的錯誤報告等級。

PHP7.2 的預設值為 E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED

在開發階段建議啟用 E_NOTICE 顯示更多可能的錯誤。

<?php

// 关闭所有PHP错误报告,相当于 ini_set(&#39;error_reporting&#39;, 0);
error_reporting(0);

error_reporting(E_ERROR | E_WARNING | E_PARSE);

// 报告 E_NOTICE  (报告未初始化的变量或捕获变量名的错误拼写)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// 除了 E_NOTICE,报告其他所有错误
error_reporting(E_ALL ^ E_NOTICE);

// 报告所有 PHP 错误 (参见 changelog)
error_reporting(E_ALL);

// 报告所有 PHP 错误
error_reporting(-1);

// 和 error_reporting(E_ALL); 一样
ini_set(&#39;error_reporting&#39;, E_ALL);

修改 php.ini 設定檔

error_reporting = E_ALL # 报告所有错误
display_errors = On # 显示错误

#【推薦學習:《PHP影片教學》】

以上是如何進行php.ini報錯設定的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn