修改方法:1、php.ini中,查找并修改“error_reporting”項(xiàng)的值,然后重啟web服務(wù)器即可。2、在PHP文件中,使用“error_reporting(level)”語句修改,參數(shù)level用于規(guī)定當(dāng)前腳本的錯(cuò)誤報(bào)告級(jí)別。
本教程操作環(huán)境:windows7系統(tǒng)、PHP7.1版,DELL G3電腦
錯(cuò)誤報(bào)告級(jí)別:指定了在什么情況下,腳本代碼中的錯(cuò)誤(這里的錯(cuò)誤是廣義的錯(cuò)誤,包括E_NOTICE注意、E_WARNING警告、E_ERROR致命錯(cuò)誤等)會(huì)以錯(cuò)誤報(bào)告的形式輸出。
php修改報(bào)錯(cuò)級(jí)別的方法
1、修改PHP的配置文件php.ini
這種方式設(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=E_ALL & ~E_NOTICE
意思是報(bào)告所有的錯(cuò)誤,但除了E_NOTICE這一種。這也是最常用的錯(cuò)誤報(bào)告級(jí)別,它不會(huì)報(bào)告注意類(如:使用了未定義的變量)的錯(cuò)誤。
保存,重啟web服務(wù)器后生效。
2、使用error_reporting()函數(shù)
這種方式設(shè)置后,可以立即生效。但僅限于在當(dāng)前腳本中的error_reporting()函數(shù)調(diào)用的后面區(qū)域。
error_reporting(level)
level參數(shù)規(guī)定當(dāng)前腳本的錯(cuò)誤報(bào)告級(jí)別,可省略。值數(shù)字和常量名都能接受,但是,考慮未來的 PHP 版本的兼容性,推薦使用常量名。
level參數(shù)可以是整型或?qū)?yīng)的常量標(biāo)識(shí)符,推薦使用常量的形式。返回值為當(dāng)前位置處起作用的錯(cuò)誤報(bào)告級(jí)別的值(整型值)。
下面列舉一些錯(cuò)誤報(bào)告級(jí)別:
值 | 常量 | 描述 |
---|---|---|
1 | E_ERROR | 運(yùn)行時(shí)致命的錯(cuò)誤。不能修復(fù)的錯(cuò)誤。停止執(zhí)行腳本。 |
2 | E_WARNING | 運(yùn)行時(shí)非致命的錯(cuò)誤。沒有停止執(zhí)行腳本。 |
4 | E_PARSE | 編譯時(shí)的解析錯(cuò)誤。解析錯(cuò)誤應(yīng)該只由解析器生成。 |
8 | E_NOTICE | 運(yùn)行時(shí)的通知。腳本發(fā)現(xiàn)可能是一個(gè)錯(cuò)誤,但也可能在正常運(yùn)行腳本時(shí)發(fā)生。 |
16 | E_CORE_ERROR | PHP 啟動(dòng)時(shí)的致命錯(cuò)誤。這就如同 PHP 核心的 E_ERROR。 |
32 | E_CORE_WARNING | PHP 啟動(dòng)時(shí)的非致命錯(cuò)誤。這就如同 PHP 核心的 E_WARNING。 |
64 | E_COMPILE_ERROR | 編譯時(shí)致命的錯(cuò)誤。這就如同由 Zend 腳本引擎生成的 E_ERROR。 |
128 | E_COMPILE_WARNING | 編譯時(shí)非致命的錯(cuò)誤。這就如同由 Zend 腳本引擎生成的 E_WARNING。 |
256 | E_USER_ERROR | 用戶生成的致命錯(cuò)誤。這就如同由程序員使用 PHP 函數(shù) trigger_error() 生成的 E_ERROR。 |
512 | E_USER_WARNING | 用戶生成的非致命錯(cuò)誤。這就如同由程序員使用 PHP 函數(shù) trigger_error() 生成的 E_WARNING。 |
1024 | E_USER_NOTICE | 用戶生成的通知。這就如同由程序員使用 PHP 函數(shù) trigger_error() 生成的 E_NOTICE。 |
2048 | E_STRICT | 運(yùn)行時(shí)的通知。PHP 建議您改變代碼,以提高代碼的互用性和兼容性。 |
4096 | E_RECOVERABLE_ERROR | 可捕獲的致命錯(cuò)誤。這就如同一個(gè)可以由用戶定義的句柄捕獲的 E_ERROR(見 set_error_handler())。 |
8191 | E_ALL | 所有的錯(cuò)誤和警告的級(jí)別,除了 E_STRICT(自 PHP 6.0 起,E_STRICT 將作為 E_ALL的一部分)。 |
示例:
error_reporting(E_ALL ^ E_NOTICE); // 除了E_NOTICE之外,報(bào)告所有的錯(cuò)誤 error_reporting(E_ERROR); // 只報(bào)告致命錯(cuò)誤 echo error_reporting(E_ERROR | E_WARNING | E_NOTICE); // 只報(bào)告E_ERROR、E_WARNING 和 E_NOTICE三種錯(cuò)誤
注意:配置文件php.ini中display_errors
的默認(rèn)值為On,代表顯示錯(cuò)誤提示,如果設(shè)置為Off,就會(huì)關(guān)閉所有的錯(cuò)誤提示。
使用 error_reporting(0)
或者在函數(shù)前面加 @
,可以抑制錯(cuò)誤輸出,以防止錯(cuò)誤消息泄露敏感信息。
推薦學(xué)習(xí):《PHP視頻教程》