# error_reporting

(PHP 4, PHP 5)

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.

### 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 are listed below. The actual meanings of these error levels are described in the predefined constants.

  error_reporting() level constants and bit values
  value | constant
  --- | ---
  1 | E_ERROR
  2 | E_WARNING
  4 | E_PARSE
  8 | E_NOTICE
  16 | E_CORE_ERROR
  32 | E_CORE_WARNING
  64 | E_COMPILE_ERROR
  128 | E_COMPILE_WARNING
  256 | E_USER_ERROR
  512 | E_USER_WARNING
  1024 | E_USER_NOTICE
  6143 | E_ALL
  2048 | E_STRICT
  4096 | E_RECOVERABLE_ERROR

### Return Values

Returns the old error_reporting level.

### ChangeLog

Version | Description
--- | ---
5.0.0 | `E_STRICT` introduced (not part of `E_ALL`).
5.2.0 | `E_RECOVERABLE_ERROR` introduced.
6 | `E_STRICT` became 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 (bitwise 63 may be used in PHP 3)
error_reporting(E_ALL);
// 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).

### See Also

- The display_errors directive
- ini_set()