O'Reilly logo

Upgrading to PHP 5 by Adam Trachtenberg

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required