亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

PHP中error_reporting()用法詳解

2024-05-04 23:38:57
字體:
來源:轉載
供稿:網友

php中我們對錯誤的處理會常用到error_reporting函數了,大家可以看到最多的是error_reporting(E_ALL ^ E_NOTICE)了,這個到底什么意思呢,下面我來來看看。

error_reporting() 函數規定報告哪個錯誤 。該函數設置當前腳本的錯誤報告級別。該函數返回舊的錯誤報告級別。

首先要知道error_reporting()函數是用來設置錯誤級別并返回當前級別的。它有14個錯誤級別,如下:

 

 
  1. 1 E_ERROR 致命的運行時錯誤。 錯誤無法恢復過來。腳本的執行被暫停 
  2. 2 E_WARNING 非致命的運行時錯誤。 腳本的執行不會停止 
  3. 4 E_PARSE 編譯時解析錯誤。解析錯誤應該只由分析器生成 
  4. 8 E_NOTICE 運行時間的通知。 
  5. 16 E_CORE_ERROR 在PHP啟動時的致命錯誤。這就好比一個在PHP核心的E_ERROR 
  6. 32 E_CORE_WARNING 在PHP啟動時的非致命的錯誤。這就好比一個在PHP核心E_WARNING警告 
  7. 64 E_COMPILE_ERROR 致命的編譯時錯誤。 這就像由Zend腳本引擎生成了一個E_ERROR 
  8. 128 E_COMPILE_WARNING 非致命的編譯時錯誤,由Zend腳本引擎生成了一個E_WARNING警告 
  9. 256 E_USER_ERROR 致命的用戶生成的錯誤。 
  10. 512 E_USER_WARNING 非致命的用戶生成的警告。  
  11. 1024 E_USER_NOTICE 用戶生成的通知。 
  12. 2048 E_STRICT 運行時間的通知。 
  13.  
  14. 4096 E_RECOVERABLE_ERROR 捕捉致命的錯誤。 
  15.  
  16. 8191 E_ALL來 所有的錯誤和警告。 

好像php默認是不開啟錯誤的,所以你需要配置php.ini文件:

將 display_errors = Off 改為display_errors = On

另外還要配置錯誤級別:將

error_reporting = E_ALL 改為:

error_reporting = E_ALL & ~E_NOTICE

應為php默認是顯示所有錯誤的,而有些無害的提示我們不需要顯示,所以設置如上!

也可以在php代碼運用如下:

 

 
  1. <?php 
  2. //禁用錯誤報告,也就是不顯示錯誤 
  3. error_reporting(0); 
  4. //報告運行時錯誤 
  5. error_reporting(E_ERROR | E_WARNING | E_PARSE); 
  6. //報告所有錯誤 
  7. error_reporting(E_ALL); 
  8. ?> 

使用示例:

今天學習CI框架過程中遇到個問題:

 

 
  1. A PHP Error was encountered  
  2. Severity: Notice  
  3.  
  4. Message: Undefined variable: user  

一般在默認的普通PHP文件中輸出一個未定義聲明的變量是不會報錯誤的,但在codeigniter框架下卻要報錯誤,這對于想集成 添加 和 修改 頁面于一體的”懶人”很不方便,由于是初學者開始還想怎么在代碼中屏蔽這一錯誤提示呢.甚至用到了@,但聽很多人都說@會大大降低性能….

最后突然想到,是不是codeigniter有意讓這錯誤信息提示出來了呢,我們該如何去屏蔽掉這一類錯誤呢無意中搜索到了”如何讓codeigniter不顯示Notice信息?”,茅塞頓開.原來是入口index.php中的error_reporting(E_ALL);在作怪.只需要把它改成

error_reporting(E_ALL ^ E_NOTICE);

就可以屏蔽掉這個錯誤,而不影響其他的報錯.

我們在程序中可能經??吹竭@么一個函數

 

 
  1. function setErrorReporting() 
  2. //從配置文件讀取當前是否為開發環境 
  3. if (DEV_ENV == true) { 
  4. ini_set("error_reprorting""E_ALL & ~E_NOTICE"); 
  5. ini_set("display_errors""on"); 
  6. else { 
  7. error_reporting(E_ALL); 
  8. ini_set('display_errors''Off'); 
  9. ini_set("log_errors" , "On"); 
  10. ini_set('error_log''/var/log/phperror.log'); 

舉例說明:

在Windows環境下:原本在php4.3.0中運行正常的程序,在4.3.1中為何多處報錯,大體提示為:Notice:Undefined varialbe:變量名稱.

例如有如下的代碼:

代碼如下復制代碼

if (!$tmp_i) {

$tmp_i=10;

}

在4.3.0中運行正常,在4.3.1中運行會提示Notice:Undefined varialbe:tmp_i

問題如下:1.問題出在哪里?

2.應如何修改這段代碼?

3.不改段代碼,如何修改php.ini中的設置使原來在4.3.0中的程序在4.3.1的環境下運行正常而不出現這個錯誤提示.

解決辦法:

在程序開頭加一句:

代碼如下復制代碼

error_reporting(E_ALL & ~E_NOTICE); 或error_reporting(E_ALL ^ E_NOTICE);

或者修改php.ini:

代碼如下復制代碼

error_reporting = E_ALL & ~E_NOTICE

有關error_reporting()函數: error_reporting() 設置 PHP 的報錯級別并返回當前級別。

; 錯誤報告是按位的?;蛘邔底旨悠饋淼玫较胍腻e誤報告等級。

; E_ALL - 所有的錯誤和警告

; E_ERROR - 致命性運行時錯

; E_WARNING - 運行時警告(非致命性錯)

; E_PARSE - 編譯時解析錯誤

; E_NOTICE - 運行時提醒(這些經常是是你的代碼的bug引起的,也可能是有意的行為造成的。(如:基于未初始化的變量自動初始化為一個空字符串的事實而使用一個未初始化的變量)

; E_CORE_ERROR - 發生于PHP啟動時初始化過程中的致命錯誤

; E_CORE_WARNING - 發生于PHP啟動時初始化過程中的警告(非致命性錯)

; E_COMPILE_ERROR - 編譯時致命性錯

; E_COMPILE_WARNING - 編譯時警告(非致命性錯)

; E_USER_ERROR - 用戶產生的出錯消息

; E_USER_WARNING - 用戶產生的警告消息

; E_USER_NOTICE - 用戶產生的提醒消息

E_NOTICE 表示一般情形不記錄,只有程式有錯誤情形時才用到,例如企圖存取一個不存在的變數,或是呼叫 stat() 函式檢視不存在的檔案。

E_WARNING 通常都會顯示出來,但不會中斷程式的執行。這對除錯很有效。例如:用有問題的常規表示法呼叫 ereg()。

E_ERROR 通常會顯示出來,亦會中斷程式執行。意即用這個遮罩無法追查到記憶體配置或其它的錯誤。

E_PARSE 從語法中剖析錯誤。

E_CORE_ERROR 類似 E_ERROR,但不包括 PHP 核心造成的錯誤。

E_CORE_WARNING 類似 E_WARNING,但不包括 PHP 核心錯誤警告

使用方法:

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);//顯示運行時錯誤,與error_reporting(E_ALL ^ E_NOTICE);效果相同。error_reporting(E_ALL);//顯示所有錯誤

error_reporting(0)

error_reporting(255);

是列出所有提示

error_reporting(0);

是不顯示所有提示

建議使用

error_reporting(7);

只顯示嚴重錯誤

1 E_ERROR 致命的運行時錯誤

2 E_WARNING 運行時警告(非致命性錯誤)

4 E_PARSE 編譯時解析錯誤

8 E_NOTICE 運行時提醒(經常是bug,也可能是有意的)

16 E_CORE_ERROR PHP啟動時初始化過程中的致命錯誤

32 E_CORE_WARNING PHP啟動時初始化過程中的警告(非致命性錯)

64 E_COMPILE_ERROR 編譯時致命性錯

128 E_COMPILE_WARNING 編譯時警告(非致命性錯)

256 E_USER_ERROR 用戶自定義的致命錯誤

512 E_USER_WARNING 用戶自定義的警告(非致命性錯誤)

1024 E_USER_NOTICE 用戶自定義的提醒(經常是bug,也可能是有意的)

2048 E_STRICT 編碼標準化警告(建議如何修改以向前兼容)

4096 E_RECOVERABLE_ERROR 接近致命的運行時錯誤,若未被捕獲則視同E_ERROR

6143 E_ALL 除E_STRICT外的所有錯誤(PHP6中為8191,即包含所有)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美成人免费va影院高清| 久久资源免费视频| 国产精品香蕉在线观看| 亚洲欧美日本另类| 久久亚洲精品网站| 美女视频黄免费的亚洲男人天堂| 91亚洲精品一区二区| 久久91亚洲精品中文字幕奶水| 亚洲最大在线视频| 欧美日韩亚洲视频一区| 日韩成人在线视频网站| 激情久久av一区av二区av三区| 亚洲色图15p| 国产一区二区激情| 亚洲精品一二区| 亚洲人av在线影院| 欧美日韩久久久久| 亚洲女人被黑人巨大进入al| 日本最新高清不卡中文字幕| 国产精品国产亚洲伊人久久| 久久久www成人免费精品| 亚洲国产精品中文| 国产在线不卡精品| 欧美亚洲国产精品| 国产综合在线视频| 亚洲成人网在线观看| 亲爱的老师9免费观看全集电视剧| 久久99视频免费| 日韩精品一区二区三区第95| 成人精品久久av网站| 欧美一级电影免费在线观看| 97在线观看视频国产| 久久精品国产一区二区电影| 日韩成人av一区| 亚洲精品美女久久久| 8x拔播拔播x8国产精品| 国产精品18久久久久久首页狼| 成人a在线视频| 亚洲人成网7777777国产| 欧美成人精品在线观看| 一区二区三区视频免费在线观看| 亚洲a∨日韩av高清在线观看| 日韩亚洲在线观看| 91美女片黄在线观| 色婷婷亚洲mv天堂mv在影片| 性色av一区二区三区免费| 欧美中在线观看| 亚洲电影免费观看高清完整版在线观看| 日韩国产精品视频| 国产精品久久久久久久久影视| 日韩美女在线播放| 日韩精品福利网站| 日韩免费在线电影| 久久人人看视频| 欧美成人免费全部观看天天性色| 亚洲风情亚aⅴ在线发布| 色综合亚洲精品激情狠狠| 国产精品1234| 欧美日韩第一页| 欧美日韩在线视频观看| 亚洲欧美国产精品久久久久久久| 8x拔播拔播x8国产精品| 欧美国产亚洲视频| 欧美激情精品久久久久久大尺度| 欧美极度另类性三渗透| 97在线视频免费| 亚洲欧美激情视频| 欧美专区福利在线| 国产欧美久久一区二区| 亚洲综合日韩在线| 亚洲va久久久噜噜噜久久天堂| 欧美精品激情视频| 国产精品久久久久久久久久久久| 日韩美女在线观看一区| 欧美精品18videos性欧| 欧美中文字幕在线观看| 国产精品永久在线| 日韩精品在线第一页| 97精品视频在线| 久青草国产97香蕉在线视频| 欧美精品免费在线观看| 美日韩精品视频免费看| 国产精品美女网站| 91久久国产精品91久久性色| 欧美肥臀大乳一区二区免费视频| 91亚洲午夜在线| 亚洲精品午夜精品| 久久久久在线观看| 蜜臀久久99精品久久久无需会员| 日韩精品有码在线观看| 九九久久国产精品| 国产精品久久久久久久久久免费| 亚洲欧美日韩一区在线| 日韩理论片久久| 欧美在线性爱视频| 91精品久久久久久久久久久久久| 韩国三级电影久久久久久| 日韩欧美国产骚| 日韩视频精品在线| 精品视频9999| 国产精品自拍网| 国产一区二区三区视频在线观看| 欧日韩在线观看| 国产精品一久久香蕉国产线看观看| 亚洲第一福利网站| 欧美激情手机在线视频| 精品久久国产精品| 琪琪第一精品导航| 亚洲最大的网站| 日韩电影免费观看在线观看| 欧美一级免费视频| 精品久久久视频| 欧美日韩国产中文字幕| 亚洲qvod图片区电影| 国产综合在线看| 91九色综合久久| 亚州av一区二区| 亚洲欧美日韩国产精品| 欧美黄色免费网站| 亚洲最大的网站| 91情侣偷在线精品国产| 亚洲成年网站在线观看| 国产日韩av高清| 精品国产1区2区| 久久免费在线观看| 亚洲人成网站色ww在线| 久久成年人视频| 日韩亚洲一区二区| 国产一区二区三区丝袜| 亚洲欧美综合精品久久成人| 久久久国产视频| 欧美精品电影在线| 91精品国产自产在线老师啪| 欧美自拍视频在线| 一区二区三区国产视频| 色悠悠久久88| 热草久综合在线| 在线观看欧美www| 国产aⅴ夜夜欢一区二区三区| 久久综合久久美利坚合众国| 97精品一区二区三区| 亚洲天堂网在线观看| 久久伊人精品一区二区三区| 97精品国产97久久久久久春色| 中文在线资源观看视频网站免费不卡| 国产啪精品视频网站| 91日本在线观看| 日韩精品欧美激情| 91精品啪aⅴ在线观看国产| 亚洲国产欧美一区二区三区久久| 一区二区三区黄色| 久久久久久com| 91久久久久久国产精品| 久久国产精品首页| 91亚洲国产精品| 欧美激情视频在线| 亚洲色图校园春色| 欧美肥老妇视频| 精品福利免费观看| 麻豆成人在线看| 久久久久久久久久久亚洲| 在线播放国产一区二区三区| 久久久久国色av免费观看性色| 欧美大片免费观看|