首頁  >  文章  >  後端開發  >  php error_reporting()函數的詳細說明

php error_reporting()函數的詳細說明

怪我咯
怪我咯原創
2017-07-10 14:35:131587瀏覽

在看帝國cms的connect.php是發現第一句是error_reporting(E_ALL ^ E_NOTICE);以前也沒注意過這個語句,知道是設定錯誤提示的,但不清楚具體怎樣設定使用。下面從網路上摘抄了些東西,總結了一下。

範例說明:

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
修改php.ini
error_reporting = E_ALL & ~E_NOTICE
修改php.ini
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 - 使用者產生的提醒訊息

使用方法:

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);效果相同。以下是

PHP error_reporting() 錯誤控制函數功能詳解

#定義與用法:

error_reporting() 設定PHP 的報錯層級並傳回目前層級。

##函數語法:

error_reporting(report_level)

如果參數level 未指定,目前報錯等級將會被傳回。 ##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 編譯時致命性錯。這就像由Zend腳本引擎產生了一個E_ERROR。

128 E_COMPILE_WARNING 編譯時警告(非致命性錯)。這就像由Zend腳本引擎產生了一個E_WARNING警告。

256 E_USER_ERROR 使用者自訂的錯誤訊息。這就像是由使用PHP函數

trigger_error

(程式設計師設定E_ERROR)512 E_USER_WARNING 使用者自訂的警告訊息。這就像是由使用PHP函數trigger_error(程式設計師設定的一個E_WARNING警告)

#1024 E_USER_NOTICE 使用者自訂的提醒訊息。這就像一個由使用PHP函數trigger_error(程式設計師一個E_NOTICE集)

#2048 E_STRICT 編碼標準化警告。允許PHP建議如何修改程式碼以確保最佳的互通性向前相容性。

4096 E_RECOVERABLE_ERROR 開捕致命錯誤。這就像一個E_ERROR,但可以透過使用者定義的處理來捕獲(又見set_error_handler())

8191 E_ALL 所有的錯誤和警告(不包括E_STRICT) (E_STRICT will be part of E_ALL as of PHP 6.0)

以上是php error_reporting()函數的詳細說明的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn