Edit report at https://bugs.php.net/bug.php?id=60738&edit=1

 ID:                 60738
 Patch added by:     ni...@php.net
 Reported by:        four dot zerooneunauthorized at gmail dot com
 Summary:            Allow 'set_error_handler' to handle NULL
 Status:             Open
 Type:               Feature/Change Request
 Package:            Unknown/Other Function
 Operating System:   irrelivant
 PHP Version:        5.3.9
 Block user comment: N
 Private report:     N

 New Comment:

The following patch has been added/updated:

Patch Name: error_handler_patch_1.diff
Revision:   1332535845
URL:        
https://bugs.php.net/patch-display.php?bug=60738&patch=error_handler_patch_1.diff&revision=1332535845


Previous Comments:
------------------------------------------------------------------------
[2012-03-13 08:56:27] kevin dot swinton at gmail dot com

In the first instance, nothing in here relates to a bug, rather both are 
feature requests.

The first request is for set_error_handler() to function in an identical way to 
set_exception_handler() when called with a single NULL parameter. In the 
interests of a more consistent API this would seem sensible.

The second request is for set_exception_handler() (and by extension 
set_error_handler()) to behave in a different way when called with a single 
NULL parameter.

Given there is no compelling argument, and that such a change could technically 
break BC, and that the request in itself doesn't appear to achieve anything 
useful, the suggestion would be that the first request could be implemented 
whilst the second request has no case.

As a result, I have attached a patch to implement only the first request.

------------------------------------------------------------------------
[2012-01-13 02:22:55] four dot zerooneunauthorized at gmail dot com

Description:
------------
Can the 'set_error_handler' function be made to accept NULL as the parameter in 
such a way as to reset this feature to the default state of -no- handler being 
set?  This would duplicate the behavior of the 'set_exception_handler' function.

Note: this change should not interfere with the 'restore_error_handler' 
function.

And as for the 'set_exception_handler' function - if NULL is given as a 
parameter, can the return value of 'set_exception_handler' be set to the 
details of the previously set exception handler function (string or array) 
instead of always '(bool) true' as it now does?

Test script:
---------------
function testhandler1($errno= null, $errstr= null, $errfile= null, $errline = 
null)
{
        error_log('1: ' . print_r(func_get_args(), true));
        die();
}

function testhandler2($errno= null, $errstr= null, $errfile= null, $errline = 
null)
{
        error_log('2: ' . print_r(func_get_args(), true));
        die();
}

var_dump(set_error_handler('testhandler1'));
var_dump(set_error_handler('testhandler2'));
var_dump(set_error_handler(null));


Expected result:
----------------
NULL
string(12) "testhandler1"
string(12) "testhandler2"

Actual result:
--------------
On line 'var_dump(set_error_handler(null));', a 'set_error_handler() expects 
the argument () to be a valid callback' error is generated and handled by 
function "testhandler2"


------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=60738&edit=1

Reply via email to