国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - PHP中error_reporting()用法詳解

PHP中error_reporting()用法詳解

2020-11-18 14:16PHP教程網 PHP教程

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

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

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

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

使用示例:

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

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

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

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

我們在程序中可能經常看到這么一個函數

?
1
2
3
4
5
6
7
8
9
10
11
12
13
function setErrorReporting()
{
  //從配置文件讀取當前是否為開發環境
  if (DEV_ENV == true) {
    ini_set("error_reprorting", "E_ALL & ~E_NOTICE");
    ini_set("display_errors", "on");
  } else {
    error_reporting(E_ALL);
    ini_set('display_errors', 'Off');
    ini_set("log_errors" , "On");
    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_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,即包含所有)

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: av在线电影网站 | 亚洲三区在线观看 | 欧美成人精品一区二区三区 | 一级毛片在线播放 | 中文字幕在线免费 | 欧美黄色一区 | 人人干天天干 | 国产精品免费一区二区三区四区 | 国产精品高潮呻吟久久 | 亚洲的天堂 | 久久成人人人人精品欧 | 一区二区三区中文字幕 | 91久久国产精品 | 久久久91 | 一级毛片国产 | 欧美综合第一页 | 欧美一区日韩一区 | 国产免费一区二区 | 国产精品高清一区二区 | 亚色一区| 黄色影视 | 日日干狠狠干 | 中文字幕日韩欧美一区二区三区 | 亚洲一区 中文字幕 | 国产玖玖视频 | 黄色影视在线免费观看 | 麻豆乱码国产一区二区三区 | 狠狠草视频 | 久久久久久亚洲精品中文字幕 | www.久久| 日操干 | 国产成人精品久久 | 色接久久| 国产日韩欧美在线 | 日本欧美在线观看 | 亚洲精品中字 | 精品一区二区三区免费 | 亚洲三级在线 | 亚洲成人精品在线观看 | 久久精品福利 | 求av网址|