#27903 [Com]: Undesired behavior of class destructor
ID: 27903
Comment by: alvaro at utahgateway dot com
Reported By: schroeter at liquidvision dot net
Status: Bogus
Bug Type: Class/Object related
Operating System: Winn2000 Server
PHP Version: 5.0.0RC1
New Comment:
I have to agree with schroeter.
Is there a reason why you can't call the code in the dtors before
shutting down the sessions.
Previous Comments:
------------------------------------------------------------------------
[2004-04-07 09:11:28] schroeter at liquidvision dot net
Anyways,
1. I disagree that this behavior is the way it should be. It does not
make sense to me that internal stuff is cleaned up before the user
defined stuff is?!
2. If it will remain this way, it has to made clear in the docs.
3. I found a workaround that will solve this:
just place a
register_shutdown_function(array(&$this, 'your class function'));
at the end of the __constructor function -this will give the desired
functionality.
I hope that will remain in future releases.
Thanks,
Tom
------------------------------------------------------------------------
[2004-04-07 09:11:01] derick@php.net
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to
report
a bug at http://bugs.php.net/how-to-report.php
This is correct behavior, nothing we can fix most likely here for PHP
5.0.
------------------------------------------------------------------------
[2004-04-07 07:57:43] sniper@php.net
You need to redesign your stuff, the destructor works just fine. (don't
misuse it like you did)
------------------------------------------------------------------------
[2004-04-07 07:04:36] schroeter at liquidvision dot net
Description:
------------
The __destruct() method seems buggy as the destructor is called after
some system internals are already cleaned up (e.g. mysql extension,
session etc.).
Thus it is impossible to set e.g. session data in the destructor,
leaving this mostly superfluous!
I have prepared an example that shows the point in detail.
This is also true for e.g. mysql_close() in the destructor!
Reproduce code:
---------------
http://www.liquidvision.net/tomimg/php/destruct.php5
Expected result:
----------------
Please see comments in file.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=27903&edit=1
Thread (7 messages)