PHP錯誤層級設定

來源:互聯網
上載者:User

標籤:變數   資訊   輸出   uil   ict   預設   warning   number   重啟   

錯誤報表層級:指定了在什麼情況下,指令碼代碼中的錯誤(這裡的錯誤是廣義的錯誤,包括E_NOTICE注意、E_WARNING警告、E_ERROR致命錯誤等)會以錯誤報表的形式輸出。

設定錯誤報表層級的方法:1. 修改PHP的設定檔php.ini

這種方式設定error_reporting後,重啟web伺服器,就會永久生效。
開啟設定檔php.ini,查看錯誤報表層級error_reporting的預設值,如下:

error_reporting=E_ALL & ~E_DEPRECATED & ~E_STRICT

意思是報告所有的錯誤,但除了E_DEPRECATEDE_STRICT這兩種。
將其修改為:

error_reporting=E_ALL &  ~E_NOTICE

意思是報告所有的錯誤,但除了E_NOTICE這一種。這也是最常用的錯誤報表層級,它不會報告注意類(如:使用了未定義的變數)的錯誤。
儲存,重啟web伺服器後生效。

2. 使用error_reporting()函數

這種方式設定後,可以立即生效。但僅限於在當前指令碼中的error_reporting()函數調用的後面地區。

int error_reporting ([ int $level ] )

參數可以是整型或對應的常量標識符,推薦使用常量的形式。傳回值為當前位置處起作用的錯誤報表層級的值(整型值)。
下面列舉一些錯誤報表層級:

值          常量                     說明1           E_ERROR             報告導致指令碼終止啟動並執行致命錯誤2           E_WARNING           報告運行時的警告類錯誤(指令碼不會終止運行)4           E_PARSE             報告編譯時間的文法解析錯誤8           E_NOTICE            報告通知類錯誤,指令碼可能會產生錯誤32767       E_ALL               報告所有的可能出現的錯誤(不同的PHP版本,常量E_ALL的值也可能不同)error_reporting(E_ALL ^E_NOTICE);    // 除了E_NOTICE之外,報告所有的錯誤error_reporting(E_ERROR);       // 只報告致命錯誤echo error_reporting(E_ERROR | E_WARNING | E_NOTICE);   // 只報告E_ERROR、E_WARNING 和 E_NOTICE三種錯誤

注意:設定檔php.inidisplay_errors的預設值為On,代表顯示錯誤提示,如果設定為Off,就會關閉所有的錯誤提示。

使用 error_reporting(0) 或者在函數前面加 @,可以抑制錯誤輸出,以防止錯誤訊息泄露敏感資訊。

PHP錯誤層級設定

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.