在php中error_reporting是設置 PHP 的報錯級別並返回當前級別,我們可以根據不同級別來設置是不給出錯誤提示域外出錯時是否向往執行程序,下面我來介紹error_reporting()用法與參數。
基本信息
E_NOTICE 表示一般情形不記錄,只有程序有錯誤情形時才用到,例如企圖存取一個不存在的變量,或是呼叫 stat() 函數檢視不存在的文件。
E_WARNING 通常都會顯示出來,但不會中斷程序的執行。這對除錯很有效。例如:用有問題的正則表達式呼叫 ereg()。
E_ERROR 通常會顯示出來,亦會中斷程序執行。意即用這個遮罩無法追查到內存配置或其它的錯誤。
E_PARSE 從語法中解析錯誤。
E_CORE_ERROR 類似 E_ERROR,但不包括 PHP 核心造成的錯誤。
E_CORE_WARNING 類似 E_WARNING,但不包括 PHP 核心錯誤警告。
例子:
error_reporting = E_ALL & ~E_NOTICE ; 顯示所有的錯誤,除了提醒
error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR ; 僅顯示錯
error_reporting=E_ERROR :只會報告致命性錯誤
基本上設置
error_reporting = E_ALL & ~E_NOTICE ; 顯示所有的錯誤,除了提醒
例子
error_reporting(0);
// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);
// Reporting E_NOTICE can be good too (to report uninitialized
// variables or catch variable name misspellings ...)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
// Report all errors except E_NOTICE
// This is the default value set in php.ini
error_reporting(E_ALL ^ E_NOTICE);
// Report all PHP errors (bitwise 63 may be used in PHP 3)
error_reporting(E_ALL);
// Same as error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);
整數。表示舊的PHP的錯誤級別。(Returns the old error_reporting level.)
手冊上的例子:
Value
Constant
Description
Note
1
E_ERROR (integer)
Fatal run-time errors. These indicate errors that can not be recovered from, such as a memory allocation problem. Execution of the script is halted.
2
E_WARNING (integer)
Run-time warnings (non-fatal errors). Execution of the script is not halted.
4
E_PARSE (integer)
Compile-time parse errors. Parse errors should only be generated by the parser.
8
E_NOTICE (integer)
Run-time notices. Indicate that the script encountered something that could indicate an error, but could also happen in the normal course of running a script.
16
E_CORE_ERROR (integer)
Fatal errors that occur during PHP’s initial startup. This is like an E_ERROR, except it is generated by the core of PHP.
since PHP 4
32
E_CORE_WARNING (integer)
Warnings (non-fatal errors) that occur during PHP’s initial startup. This is like an E_WARNING, except it is generated by the core of PHP.
since PHP 4
64
E_COMPILE_ERROR (integer)
Fatal compile-time errors. This is like an E_ERROR, except it is generated by the Zend Scripting Engine.
since PHP 4
128
E_COMPILE_WARNING (integer)
Compile-time warnings (non-fatal errors). This is like an E_WARNING, except it is generated by the Zend Scripting Engine.
since PHP 4
256
E_USER_ERROR (integer)
User-generated error message. This is like an E_ERROR, except it is generated in PHP code by using the PHP function trigger_error().
since PHP 4
512
E_USER_WARNING (integer)
User-generated warning message. This is like an E_WARNING, except it is generated in PHP code by using the PHP function trigger_error().
since PHP 4
1024
E_USER_NOTICE (integer)
User-generated notice message. This is like an E_NOTICE, except it is generated in PHP code by using the PHP function trigger_error().
since PHP 4
2048
E_STRICT (integer)
Run-time notices. Enable to have PHP suggest changes to your code which will ensure the best interoperability and forward compatibility of your code.
since PHP 5
4096
E_RECOVERABLE_ERROR (integer)
Catchable fatal error. It indicates that a probably dangerous error occured, but did not leave the Engine in an unstable state. If the error is not caught by a user defined handle (see also set_error_handler()), the application aborts as it was an E_ERROR.
since PHP 5.2.0
8191
E_ALL (integer)
All errors and warnings, as supported, except of level E_STRICT in PHP < 6.
6143 in PHP 5.2.x and 2047 previously