PHP函數(shù)之error_reporting(E_ALL ^ E_NOTICE)詳細(xì)說明
更新時間:2011年07月01日 11:50:32 作者:
在看帝國cms的connect.php是發(fā)現(xiàn)第一句是error_reporting(E_ALL ^ E_NOTICE);以前也沒注意過這個語句,知道是設(shè)置錯誤提示的,但不清楚具體怎樣設(shè)置使用。下面從網(wǎng)上摘抄了些東西,總結(jié)了一下。
舉例說明:
在Windows環(huán)境下:原本在php4.3.0中運(yùn)行正常的程序,在4.3.1中為何多處報錯,大體提示為:Notice:Undefined varialbe:變量名稱.
例如有如下的代碼:
if (!$tmp_i) {
$tmp_i=10;
}
在4.3.0中運(yùn)行正常,在4.3.1中運(yùn)行會提示Notice:Undefined varialbe:tmp_i
問題下下:
1.問題出在哪里?
2.應(yīng)如何修改這段代碼?
3.不改段代碼,如何修改php.ini中的設(shè)置使原來在4.3.0中的程序在4.3.1的環(huán)境下運(yùn)行正常?而不出現(xiàn)這個錯誤提示.
解決辦法:
在程序開頭加一句:
error_reporting(E_ALL & ~E_NOTICE); 或error_reporting(E_ALL ^ E_NOTICE);
或者
修改php.ini
error_reporting = E_ALL & ~E_NOTICE
有關(guān)error_reporting()函數(shù):
error_reporting() 設(shè)置 PHP 的報錯級別并返回當(dāng)前級別。
; 錯誤報告是按位的?;蛘邔?shù)字加起來得到想要的錯誤報告等級。
; E_ALL - 所有的錯誤和警告
; E_ERROR - 致命性運(yùn)行時錯
; E_WARNING - 運(yùn)行時警告(非致命性錯)
; E_PARSE - 編譯時解析錯誤
; E_NOTICE - 運(yùn)行時提醒(這些經(jīng)常是是你的代碼的bug引起的,
;也可能是有意的行為造成的。(如:基于未初始化的變量自動初始化為一個
;空字符串的事實而使用一個未初始化的變量)
; E_CORE_ERROR - 發(fā)生于PHP啟動時初始化過程中的致命錯誤
; E_CORE_WARNING - 發(fā)生于PHP啟動時初始化過程中的警告(非致命性錯)
; E_COMPILE_ERROR - 編譯時致命性錯
; E_COMPILE_WARNING - 編譯時警告(非致命性錯)
; E_USER_ERROR - 用戶產(chǎn)生的出錯消息
; E_USER_WARNING - 用戶產(chǎn)生的警告消息
; E_USER_NOTICE - 用戶產(chǎn)生的提醒消息
使用方法:
error_reporting(0);//禁用錯誤報告
error_reporting(E_ALL ^ E_NOTICE);//顯示除去 E_NOTICE 之外的所有錯誤信息
error_reporting(E_ALL^E_WARNING^E_NOTICE);//顯示除去E_WARNING E_NOTICE 之外的所有錯誤信息
error_reporting(E_ERROR | E_WARNING | E_PARSE);//顯示運(yùn)行時錯誤,與error_reporting(E_ALL ^ E_NOTICE);效果相同。error_reporting(E_ALL);//顯示所有錯誤
在Windows環(huán)境下:原本在php4.3.0中運(yùn)行正常的程序,在4.3.1中為何多處報錯,大體提示為:Notice:Undefined varialbe:變量名稱.
例如有如下的代碼:
復(fù)制代碼 代碼如下:
if (!$tmp_i) {
$tmp_i=10;
}
在4.3.0中運(yùn)行正常,在4.3.1中運(yùn)行會提示Notice:Undefined varialbe:tmp_i
問題下下:
1.問題出在哪里?
2.應(yīng)如何修改這段代碼?
3.不改段代碼,如何修改php.ini中的設(shè)置使原來在4.3.0中的程序在4.3.1的環(huán)境下運(yùn)行正常?而不出現(xiàn)這個錯誤提示.
解決辦法:
在程序開頭加一句:
error_reporting(E_ALL & ~E_NOTICE); 或error_reporting(E_ALL ^ E_NOTICE);
或者
修改php.ini
error_reporting = E_ALL & ~E_NOTICE
有關(guān)error_reporting()函數(shù):
error_reporting() 設(shè)置 PHP 的報錯級別并返回當(dāng)前級別。
; 錯誤報告是按位的?;蛘邔?shù)字加起來得到想要的錯誤報告等級。
; E_ALL - 所有的錯誤和警告
; E_ERROR - 致命性運(yùn)行時錯
; E_WARNING - 運(yùn)行時警告(非致命性錯)
; E_PARSE - 編譯時解析錯誤
; E_NOTICE - 運(yùn)行時提醒(這些經(jīng)常是是你的代碼的bug引起的,
;也可能是有意的行為造成的。(如:基于未初始化的變量自動初始化為一個
;空字符串的事實而使用一個未初始化的變量)
; E_CORE_ERROR - 發(fā)生于PHP啟動時初始化過程中的致命錯誤
; E_CORE_WARNING - 發(fā)生于PHP啟動時初始化過程中的警告(非致命性錯)
; E_COMPILE_ERROR - 編譯時致命性錯
; E_COMPILE_WARNING - 編譯時警告(非致命性錯)
; E_USER_ERROR - 用戶產(chǎn)生的出錯消息
; E_USER_WARNING - 用戶產(chǎn)生的警告消息
; E_USER_NOTICE - 用戶產(chǎn)生的提醒消息
使用方法:
error_reporting(0);//禁用錯誤報告
error_reporting(E_ALL ^ E_NOTICE);//顯示除去 E_NOTICE 之外的所有錯誤信息
error_reporting(E_ALL^E_WARNING^E_NOTICE);//顯示除去E_WARNING E_NOTICE 之外的所有錯誤信息
error_reporting(E_ERROR | E_WARNING | E_PARSE);//顯示運(yùn)行時錯誤,與error_reporting(E_ALL ^ E_NOTICE);效果相同。error_reporting(E_ALL);//顯示所有錯誤
您可能感興趣的文章:
- php實現(xiàn)的簡單日志寫入函數(shù)
- PHP調(diào)試函數(shù)和日志記錄函數(shù)分享
- php基于自定義函數(shù)記錄log日志方法
- PHP 日志縮略名的創(chuàng)建函數(shù)代碼
- php error_log 函數(shù)的使用
- PHP error_log()將錯誤信息寫入一個文件(定義和用法)
- PHP中error_log()函數(shù)的使用方法
- PHP Error與Logging函數(shù)的深入理解
- 記錄PHP錯誤日志 display_errors與log_errors的區(qū)別
- PHP中error_reporting()函數(shù)的用法(修改PHP屏蔽錯誤)
- PHP中set error handler函數(shù)用法小結(jié)
- php日志函數(shù)error_log用法實例分析
相關(guān)文章
PHP應(yīng)用跨時區(qū)功能的實現(xiàn)方法
今天小編就為大家分享一篇關(guān)于PHP應(yīng)用跨時區(qū)功能的實現(xiàn)方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-03-03
php連接oracle數(shù)據(jù)庫及查詢數(shù)據(jù)的方法
這篇文章主要介紹了php連接oracle數(shù)據(jù)庫及查詢數(shù)據(jù)的方法,以實例形式較為詳細(xì)的分析了php操作oracle數(shù)據(jù)庫的使用技巧,具有一定的參考借鑒價值,需要的朋友可以參考下2014-12-12
Laravel框架中實現(xiàn)使用阿里云ACE緩存服務(wù)
這篇文章主要介紹了Laravel框架中實現(xiàn)使用阿里云ACE緩存服務(wù),本文擴(kuò)展了一個ACE緩存驅(qū)動,以便使用阿里云ACE緩存服務(wù),需要的朋友可以參考下2015-02-02
PHP中date與gmdate的區(qū)別及默認(rèn)時區(qū)設(shè)置
這篇文章主要介紹了PHP中date與gmdate的區(qū)別及默認(rèn)時區(qū)設(shè)置,需要的朋友可以參考下2014-05-05
php短網(wǎng)址和數(shù)字之間相互轉(zhuǎn)換的方法
這篇文章主要介紹了php短網(wǎng)址和數(shù)字之間相互轉(zhuǎn)換的方法,涉及php操作字符串的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-03-03

