PHP如何設定報錯等級?

怪我咯
發布: 2023-03-07 17:08:01
原創
6887 人瀏覽過

在我們的程式開發中,經常會遇到一些程式運行的錯誤,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 參數的值。

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

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!