溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

php.ini中如何設(shè)置錯(cuò)誤級(jí)別

發(fā)布時(shí)間:2021-07-19 09:24:48 來源:億速云 閱讀:339 作者:chen 欄目:編程語言

本篇內(nèi)容主要講解“php.ini中如何設(shè)置錯(cuò)誤級(jí)別”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“php.ini中如何設(shè)置錯(cuò)誤級(jí)別”吧!

php.ini中設(shè)置錯(cuò)誤級(jí)別的方法:打開“php.ini”配置文件,找到“error_reporting”項(xiàng),將該項(xiàng)的值設(shè)置為需要的錯(cuò)誤類型,例如“E_ALL &  ~E_NOTICE”后,重啟web服務(wù)器即可。

本教程操作環(huán)境:windows7系統(tǒng)、PHP7.1版,DELL G3電腦

PHP 中定義了許多不同級(jí)別的錯(cuò)誤,如使用了未定義的變量會(huì)報(bào)出一個(gè) notice 級(jí)別的錯(cuò)誤,實(shí)例化一個(gè)未定義的類則會(huì)報(bào)出 fatal error 級(jí)別的錯(cuò)誤。

可在 php.ini 配置文件中使用error_reporting定義錯(cuò)誤級(jí)別,在代碼中也可使用error_reporting(E_ALL)等來定義錯(cuò)誤級(jí)別。

php.ini中設(shè)置錯(cuò)誤級(jí)別的方法

這種方式設(shè)置error_reporting后,重啟web服務(wù)器,就會(huì)永久生效。

這里以xampp集成軟件包為例,打開配置文件php.ini,查看錯(cuò)誤報(bào)告級(jí)別error_reporting的默認(rèn)值,如下:

error_reporting=E_ALL & ~E_DEPRECATED & ~E_STRICT

意思是報(bào)告所有的錯(cuò)誤,但除了E_DEPRECATED和E_STRICT這兩種。

將error_reporting的值設(shè)置為需要的錯(cuò)誤類型,例修改為:

error_reporting=E_ALL &  ~E_NOTICE

意思是報(bào)告所有的錯(cuò)誤,但除了E_NOTICE這一種。這也是最常用的錯(cuò)誤報(bào)告級(jí)別,它不會(huì)報(bào)告注意類(如:使用了未定義的變量)的錯(cuò)誤。

保存,重啟web服務(wù)器后生效。

PHP 中的錯(cuò)誤類型如下表所示:

常量說明
1E_ERROR致命的運(yùn)行時(shí)錯(cuò)誤,一般是不可恢復(fù)的情況,例如內(nèi)存分配導(dǎo)致的問題,后果是導(dǎo)致腳本終止、不再繼續(xù)運(yùn)行。
2E_WARNING運(yùn)行時(shí)警告(非致命錯(cuò)誤),僅給出提示信息,但是腳本不會(huì)終止運(yùn)行。
4E_PARSE編譯時(shí)語法解析錯(cuò)誤,僅由分析器產(chǎn)生。
8E_NOTICE運(yùn)行時(shí)通知,表示腳本遇到可能會(huì)表現(xiàn)為錯(cuò)誤的情況,但是在可以正常運(yùn)行的腳本里面也可能會(huì)有類似的通知。
16E_CORE_ERROR在 PHP 初始化啟動(dòng)過程中發(fā)生的致命錯(cuò)誤,類似 E_ERROR,但是是由 PHP 引擎核心產(chǎn)生的。
32E_CORE_WARNINGPHP 初始化啟動(dòng)過程中發(fā)生的警告(非致命錯(cuò)誤),類似 E_WARNING ,但是是由 PHP 引擎核心產(chǎn)生的。
64E_COMPILE_ERROR致命編譯時(shí)錯(cuò)誤,類似 E_ERROR,但是是由 Zend 腳本引擎產(chǎn)生的。
128E_COMPILE_WARNING編譯時(shí)警告(非致命錯(cuò)誤),類似 E_WARNING,但是是由 Zend 腳本引擎產(chǎn)生的。
256E_USER_ERROR用戶產(chǎn)生的錯(cuò)誤信息,類似 E_ERROR,但是是由用戶自己在代碼中使用 PHP 函數(shù) trigger_error() 來產(chǎn)生的。
512E_USER_WARNING用戶產(chǎn)生的警告信息,類似 E_WARNING,但是是由用戶自己在代碼中使用 PHP 函數(shù) trigger_error() 來產(chǎn)生的。
1024E_USER_NOTICE用戶產(chǎn)生的通知信息,類似 E_NOTICE,但是是由用戶自己在代碼中使用 PHP 函數(shù) trigger_error() 來產(chǎn)生的。
1024E_STRICT啟用 PHP 對(duì)代碼的修改建議,以確保代碼具有最佳的互操作性和向前兼容性。
2048E_RECOVERABLE_ERROR可被捕捉的致命錯(cuò)誤,表示發(fā)生了一個(gè)可能非常危險(xiǎn)的錯(cuò)誤,但是還沒有導(dǎo)致 PHP 引擎處于不穩(wěn)定的狀態(tài)。如果該錯(cuò)誤沒有被用戶自定義句柄捕獲,將成為一個(gè) E_ERROR,從而使腳本終止運(yùn)行。
8192E_DEPRECATED運(yùn)行時(shí)通知,啟用后將會(huì)對(duì)在未來版本中可能無法正常工作的代碼給出警告。
16384E_USER_DEPRECATED用戶產(chǎn)生的警告信息,類似 E_DEPRECATED,但是是由用戶自己在代碼中使用 PHP 函數(shù) trigger_error() 來產(chǎn)生的。
30719E_ALLE_STRICT 除外的所有錯(cuò)誤和警告信息。

表格中的值(數(shù)值或者符號(hào))用于建立一個(gè)二進(jìn)制位掩碼,制定要報(bào)告的錯(cuò)誤信息??梢允褂冒次贿\(yùn)算符來組合這些值或者屏蔽某些類型的錯(cuò)誤。

注意,在 php.ini 之中,只有 '|'、'~'、'!'、'^' 和 '&' 會(huì)正確解析。

在正式環(huán)境中,可能會(huì)發(fā)生各種未知的錯(cuò)誤,這時(shí)可以定義 error_reporting(0),這樣就能屏蔽錯(cuò)誤了,用戶不會(huì)在頁面看到錯(cuò)誤信息,而當(dāng)排查錯(cuò)誤時(shí),依然可到 PHP 的執(zhí)行錯(cuò)誤日志中尋找相關(guān)信息。

到此,相信大家對(duì)“php.ini中如何設(shè)置錯(cuò)誤級(jí)別”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI