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

