首頁 >後端開發 >php教程 >PHP如何設定報錯等級?

PHP如何設定報錯等級?

怪我咯
怪我咯原創
2017-04-28 16:11:496942瀏覽

在我們的程式開發中,經常會遇到一些程式運行的錯誤,PHP會根據程式的錯誤等級來給予給出不同的提示。例如什麼警告,錯誤等錯誤,但是這些錯誤是可以設定的,如果只是一些小的錯誤,我們可以讓這些錯誤不報出來。這就需要用到我們本章所講解的如何設定PHP的報錯等級。

在PHP中,錯誤等級的設定有兩種方法:

第一種:這種方式設定error_reporting後,重啟web伺服器,就會永久生效。

這裡以xampp整合軟體套件為例,開啟設定檔php.ini,查看錯誤報告等級error_reporting的預設值,如下:

error_reporting=E_ALL & ~ E_DEPRECATED & ~E_STRICT

意思是報告所有的錯誤,但除了E_DEPRECATED和E_STRICT這兩種。

將其修改為:

error_reporting=E_ALL &  ~E_NOTICE

意思是報告所有的錯誤,但除了E_NOTICE這一種。這也是最常用的錯誤報告級別,它不會報告注意類別(如:使用了未定義的變數)的錯誤。

儲存,重啟web伺服器後生效。

第二種:透過error_reporting()函數設定報錯級別,種方式設定後,可以立即生效。但僅限於在目前腳本中的error_reporting()函數呼叫的後面區域。

error_reporting()函數的語法如下:

int error_reporting ([ int $level ] )

參數level是指定錯誤的級別,如果沒有設定,會傳回目前的報錯層級。下邊是給出level 參數的值。

常數 說明
1 E_ERROR 報告導致腳本終止執行的致命錯誤
2 E_WARNING 報告執行時期的警告類別錯誤(腳本不會終止執行)
4 #E_PARSE 報告編譯時的語法解析錯誤
8 E_NOTICE 報告通知類別錯誤,腳本可能會產生錯誤
16 E_CORE_ERROR PHP啟動時初始化過程中的致命錯誤。
32 E_CORE_WARNING #PHP啟動時初始化過程中的警告(非致命性錯)。
64 E_COMPILE_ERROR 編譯時致命性錯。這就像由Zend腳本引擎產生了一個E_ERROR。
128 E_COMPILE_WARNING 編譯時警告(非致命性錯)。這就像由Zend腳本引擎產生了一個E_WARNING警告。
256 E_USER_ERROR 使用者自訂的警告訊息。這就像是使用PHP函數trigger_error(程式設計師設定的一個E_WARNING警告)
512  E_USER_WARNING 使用者自訂的警告訊息。這就像是使用PHP函數trigger_error(程式設計師設定的一個E_WARNING警告)
1024 E_USER_NOTICE 使用者自訂的警告訊息。這就像是使用PHP函數trigger_error(程式設計師設定的一個E_WARNING警告)
2048 E_STRICT #編碼標準化警告。允許PHP建議如何修改程式碼以確保最佳的互通性向前相容性。
4096 E_RECOVERABLE_ERROR 開捕致命錯誤。這就像一個E_ERROR,但可以透過使用者定義的處理來捕獲(又見set_error_handler())
8191 E_ALL #所有的錯誤和警告(不包括E_STRICT) (E_STRICT will be part of E_ALL as of PHP 6.0)

PHP如何設定報錯等級? 任意数目的以上选项都可以用“或”来连接(用 OR 或 |),这样可以报告所有需要的各级别错误。

例子:

下面的代码关闭了用户自定义的错误和警告,执行了某些操作,然后恢复到原始的报错级别:

<?php
//禁用错误报告
error_reporting(0);

//报告运行时错误
error_reporting(E_ERROR | E_WARNING | E_PARSE);

//报告所有错误
error_reporting(E_ALL);
?>

一个简单的例子是:

error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

他表示php错误,警告,语法错误,提醒都返错。

以上是PHP如何設定報錯等級?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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