ID: 34329
Updated by: [EMAIL PROTECTED]
Reported By: marcos dot neves at gmail dot com
-Status: Open
+Status: Bogus
Bug Type: Unknown/Other Function
Operating System: *
PHP Version: 5.1.0RC1
New Comment:
If it's fixed in 5.1, it's fixed. If it's not fixed in 5.0.4, too bad.
Previous Comments:
------------------------------------------------------------------------
[2005-09-01 16:51:34] marcos dot neves at gmail dot com
Sorry, I did more tests and it's still no right.
The documentation says: "Calling restore_error_handler() from the
error_handler function is ignored."
This is bugged for 5.0.4 and is not true for 5.1.0RC1
The follow code works as I expect in 5.1.0RC1 on windows.
But on 5.0.4 restore_error_handler is ignored inside error_handler, but
calling restore_error_handler outside, will exec twice, as if the
restore_error_handler was pushed on a stack.
<pre>
<?
function error_handler1() {
echo "\n[".__FUNCTION__."]\n";
}
function error_handler2() {
echo "\n[".__FUNCTION__."]\n";
}
function error_handler3() {
echo "\n[".__FUNCTION__."]\n";
// restore_error_handler();
}
function error_handler4() {
echo "\n[".__FUNCTION__."]\n";
restore_error_handler();
}
set_error_handler('error_handler1');
set_error_handler('error_handler2');
set_error_handler('error_handler3');
set_error_handler('error_handler4');
echo foo;
echo bar;
restore_error_handler();
echo test;
?>
RESULT FOR 5.0.4
[error_handler4]
foo
[error_handler4]
bar
[error_handler1]
test
if the restore_error_handler is really ignored inside error handler,
the result should be:
[error_handler4]
foo
[error_handler4]
bar
[error_handler3]
test
RESULT FOR 5.1.0RC1
[error_handler4]
foo
[error_handler3]
bar
[error_handler1]
test
it seens that restore_error_handler is not ignored inside handler on
5.1.0RC1
------------------------------------------------------------------------
[2005-09-01 16:18:20] [EMAIL PROTECTED]
Maybe you should read how the "bug" was resolved? It wasn't really bug
in PHP itself but just missing documentation.
------------------------------------------------------------------------
[2005-09-01 16:06:40] marcos dot neves at gmail dot com
Description:
------------
The bug #31675 is closed and says its fixed,
but the problem persist in 5.04 and 5.1.
Reproduce code:
---------------
<?
function error_handler1() {
echo "[".__FUNCTION__."]";
}
function error_handler2() {
echo "[".__FUNCTION__."]";
restore_error_handler();// does not restore
}
set_error_handler('error_handler1');
set_error_handler('error_handler2');
echo foo;
?>
Expected result:
----------------
[error_handler1]foo
Actual result:
--------------
[error_handler2]foo
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=34329&edit=1