ID: 33792
Updated by: [EMAIL PROTECTED]
Reported By: deadman_great at wlp dot ru
-Status: Open
+Status: Bogus
Bug Type: Scripting Engine problem
Operating System: WinXP
PHP Version: 5.0.3
New Comment:
Because usind set_error_handler() you create a reference to the object
and unset() only decrements reference count by 1, so the destructor
gets called at the end of request and not during unset() execution.
No bug here, it's expected.
Previous Comments:
------------------------------------------------------------------------
[2005-07-21 02:08:43] deadman_great at wlp dot ru
Change e-mail
------------------------------------------------------------------------
[2005-07-21 02:06:10] deadman_great at wlp dot ru
Description:
------------
__destruct() not called on unset() if one of methods used as callback
for set_error_handler() function.
Reproduce code:
---------------
class Sample
{
function __construct() { set_error_hanlder(array(&$this,'OnError')); }
function __destruct () { echo '[DESTRUCT]'; }
function OnError ($a,$b,$c,$d) { echo 'Error'; }
}
$sample = new Sample();
echo '[BEFORE]';
unset($sample);
echo '[AFTER]';
Expected result:
----------------
[BEFORE][DESTRUCT][AFTER]
Actual result:
--------------
[BEFORE][AFTER][DESTRUCT]
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=33792&edit=1