在看帝國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(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(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中文網其他相關文章!