Skip to Main Content
Upgrading to PHP 5
book

Upgrading to PHP 5

by Adam Trachtenberg
July 2004
Intermediate to advanced content levelIntermediate to advanced
350 pages
10h 9m
English
O'Reilly Media, Inc.
Content preview from Upgrading to PHP 5

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.

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Expert PHP and MySQL®

Expert PHP and MySQL®

Andrew Curioso, Ronald Bradford, Patrick Galbraith
Pro PHP Programming

Pro PHP Programming

Peter MacIntyre, Brian Danchilla, Mladen Gogala
Mastering PHP 7

Mastering PHP 7

Branko Ajzele

Publisher Resources

ISBN: 0596006365Supplemental ContentCatalog PageErrata