Processing Errors with a Custom Handler
In PHP 4, you can enable a custom error handler for all errors by
calling set_error_handler( )
. PHP 5 lets you
refine that behavior by allowing you to specify which types of errors
the handler should process.
To restrict set_error_handler( )
to a subset of
errors, pass it a second argument. For example:
set_error_handler('my_error_handler', E_NOTICE);
function my_error_handler($errno, $errstr, $errfile, $errline) {
print "A notice occurred\n";
}
$a++;
A notice occurred
This example sets my_error_handler( )
as the
handler for E_NOTICE
errors, but lets PHP handle
all other error types. Since incrementing an undefined variable
triggers a notice, PHP invokes the function.
If the custom error handler returns false
, then
PHP also does its own set of error handling, in addition to whatever
you code inside your handler. For instance:
set_error_handler('my_error_handler', E_NOTICE); function my_error_handler($errno, $errstr, $errfile, $errline) { print "A notice occurred\n"; return false; } $a++;PHP Notice: Undefined variable: a...
A notice occurred
This example is identical to the last one, except that
my_error_handler( )
now returns
false
. As a result, you get two sets of messages:
PHPâs and yours.
Get Upgrading to PHP 5 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.