Doc #64312 [Com]: set_error_handler always return handler if called inside an error_handler

From: Date: Sat, 22 Jun 2024 07:12:50 +0000
Subject: Doc #64312 [Com]: set_error_handler always return handler if called inside an error_handler
References: 1  Groups: php.doc.bugs 
Request: Send a blank email to doc-bugs+get-19721@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=64312&edit=1 ID: 64312 Comment by: Steven268Danner at outlook dot com Reported by: php at maisqi dot com Summary: set_error_handler always return handler if called inside an error_handler Status: Analyzed Type: Documentation Problem Package: *General Issues Operating System: Win7 32 bits PHP Version: 5.4.12 Block user comment: N Private report: N New Comment: Thank you for sharing such an informative post with us. (https://github.com)(https://www.the-disneyhub.com) Previous Comments: ------------------------------------------------------------------------ [2021-09-01 12:31:31] cmb@php.net > I therefore suggest to convert this bug into a documentation issue. ACK ------------------------------------------------------------------------ [2016-02-17 12:42:04] php at maisqi dot com This is old, and I think it can be considered as acceptable behaviour. I therefore suggest to convert this bug into a documentation issue. I think the documentation should describe what happens when there's an error or warning inside a error handler, unless set_error_handler() inside it. ------------------------------------------------------------------------ [2013-02-28 02:41:18] laruence@php.net before calling to user error handler, PHP will set empty to EG(uesr_error_handler) in case of recursivly call to error handler if there is some error in the error_handler function self. IMO this is a trivial bug, if we want to to fix this, maybe add a new EG(origin_user_error_handler)... ------------------------------------------------------------------------ [2013-02-27 15:45:43] php at maisqi dot com Test script: http://maisqi.com/outros/bugs/php/64312 ------------------------------------------------------------------------ [2013-02-27 15:43:04] php at maisqi dot com Description: ------------ If you set an error handler when inside an error handling function, set_error_handler will always return NULL. Test script: --------------- <pre> <?php function first_handler () { echo " first_handler\n"; echo ' Set to second handler: <strong>', gettype (set_error_handler ('second_handler')), "</strong>\n"; echo "\n\n", '$y = $o', "\n"; $y = $o; } function second_handler () { echo " second_handler\n"; } set_error_handler ('first_handler'); echo '$x = $y', "\n"; $x = $y; echo ' Set to other handler: <strong>', gettype (set_error_handler (function(){})), "</strong>\n"; Expected result: ---------------- set_error_handler should return the name of the error handling function, which in this case would be the name of the running function. Actual result: -------------- It just returns null. ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=64312&edit=1

« previous php.doc.bugs (#19721) next »