ID:               20072
 Updated by:       [EMAIL PROTECTED]
 Reported By:      mark at tapinternet dot com
-Status:           Open
+Status:           Closed
 Bug Type:         Feature/Change Request
 Operating System: mandrake-9
 PHP Version:      4.2.3
 New Comment:

The example provided works wo any problems. Both handlers catch the
error (PHP5-CVS). The array() syntax is the PHP way of passing a
callback. Closing.

Thank you for the feature request.


Previous Comments:
------------------------------------------------------------------------

[2002-10-24 17:34:58] mark at tapinternet dot com

I don't think this is fully functional.  Correct me if I'm 
wrong but an error handler of  
"Class::function" 
and 
"function" 
should not function any different if they are the same 
code.  Use the code below, and uncomment each of the two 
set_error_handler() calls differnetly.  You will see that 
the plain function captures the error, while the 
Class::function does not. 
 
<? 
 
class ErrorClass { 
 
        function _errorHandler ($level, $message, $file, 
$line, $context) { 
                static $count; 
                print "\n\n got ".++$count." errors\n\n 
$message \n\n"; 
        } 
 
} 
 
        function _errorHandler ($level, $message, $file, 
$line, $context) { 
                static $count; 
                print "\n\n got ".++$count." errors\n\n 
$message \n\n"; 
 
        } 
 
 
 
 
//test code 
error_reporting (E_USER_ERROR | E_USER_WARNING | 
E_USER_NOTICE); 
 
//set_error_handler('_errorHandler'); 
 
//set_error_handler(array("ErrorClass","_errorHandler")); 
 
while( list($k,$v) = each($notarray) ) { 
//... 
} 
 
 
?>

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

[2002-10-24 15:17:23] [EMAIL PROTECTED]

the syntax for class method callbacks is

  set_error_handler(array("ErrorClass","handler"))

although i like your idea of how it could look like

moved to feature requests


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

[2002-10-24 14:17:20] mark at tapinternet dot com

set_error_handler() does not accept static class functions 
as a custom error handling function. 
 
set_error_handler('ErrorClass::handler') will not report 
false if called twice in succession.  But it will also not 
route errors through the static class function.  Either it 
should return false so that a script can realize the input 
was not handled properly, or it should route errors 
throught the static class function. 

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


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

Reply via email to