PHP error_reporting() Cheat Sheet
Error handling is important in any programming language and PHP is no exception. Lucky, error handling in PHP is extremely easy to set up. The following is a quick cheat sheet for PHP, straight from PHP.net.
Error Levels
The following values and constants can be used within the error_reporting() function.
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 |
Basic Usage
The following is basic usage of PHP's error reporting (using only one level).
//show nothing error_reporting(0); //show everything error_reporting(E_ALL); //using php.ini and ini_set() ini_set('error_reporting', E_ALL);
Advanced Usage
The following accounts for multiple error reporting levels.
//show warnings and errors error_reporting(E_ERROR | ERROR_WARNING); //show all types but notices error_reporting(E_ALL ^ E_NOTICE);
Custom Error Handling
Visit my article, Custom Error Handling in PHP, to learn about custom error handling in PHP.
Previous Error
To grab information on the last error, you can code:
//returns an array with error number, message, file, and line error_get_last();
Just throwing this out there…..I’ve found this to be a very handy snippet which I’ve used for single pages and for complete applications both:
In short, if the remote visitor is someone who should see errors, they will get them all, otherwise all errors are hidden. Sometimes I’ll add an extra $_GET variable check so that I can explicitly turn errors off or on, using something like $_GET[‘debugme’]. I realize that this isn’t the best solution for large applications, but its simplicity makes it hard to beat many times.
errr… lets try again with the code:
Good tip Ken…man!
You may also want to the opposite, not to show any errors if they are not the dev.
But in the latter case (no errors if not the dev) you really should be looking at setting display_errors to off rather than altering the errors that are reported. Shouldn’t you?
Thanks Man Great tip :)
Error Levels has been Updated Now in new version of PHP.
This is the best tool for figuring out PHP error reporting:
http://www.bx.com.au/tools/ultimate-php-error-reporting-wizard