error_log
restore_error_handler
Error Handling Functions
PHP Manual

# error_reporting

Sets which PHP errors are reported

### Description

int error_reporting ([ int `$level` ] )

The error_reporting function sets the error_reporting directive at runtime. PHP has many levels of errors, using this function sets that level for the duration (runtime) of your script. If the optional `level` is not set, error_reporting will just return the current error reporting level.

### Parameters

`level`

  The new error_reporting level. It takes on either a bitmask, or named constants. Using named constants is strongly encouraged to ensure compatibility for future versions. As error levels are added, the range of integers increases, so older integer-based error levels will not always behave as expected.

  The available error level constants and the actual meanings of these error levels are described in the predefined constants.

### Return Values

Returns the old error_reporting level or the current level if no `level` parameter is given.

### Changelog

Version | Description
--- | ---
5.4.0 | `E_STRICT` became part of `E_ALL`.
5.3.0 | `E_DEPRECATED` and `E_USER_DEPRECATED` introduced.
5.2.0 | `E_RECOVERABLE_ERROR` introduced.
5.0.0 | `E_STRICT` introduced (not part of `E_ALL`).

### Examples

Example #1 error_reporting examples

`<?php
// Turn off all error reporting
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 (see changelog)
error_reporting(E_ALL);
// Report all PHP errors
error_reporting(-1);
// Same as error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);
?>`

### Notes

Warning

Most of `E_STRICT` errors are evaluated at the compile time thus such errors are not reported in the file where error_reporting is enhanced to include `E_STRICT` errors (and vice versa).

Tip

Passing in the value -1 will show every possible error, even when new levels and constants are added in future PHP versions. The `E_ALL` constant also behaves this way as of PHP 5.4.

### See Also

- The display_errors directive
- The html_errors directive
- The xmlrpc_errors directive
- ini_set