#41696 [Opn->Fbk]: __destruct called twice
| From: | tony2001@php.net | Date: | Tue, 26 Jun 2007 13:04:10 +0000 |
| Subject: | #41696 [Opn->Fbk]: __destruct called twice | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-114282@lists.php.net to get a copy of this message | ||
ID: 41696
Updated by: tony2001@php.net
Reported By: irik at future-proof dot net
-Status: Open
+Status: Feedback
Bug Type: Class/Object related
Operating System: Linux (Slackware) 2.6.11.10
PHP Version: 5.2.3
New Comment:
Please try using this CVS snapshot:
http://snaps.php.net/php5.2-latest.tar.gz
For Windows (zip):
http://snaps.php.net/win32/php5.2-win32-latest.zip
For Windows (installer):
http://snaps.php.net/win32/php5.2-win32-installer-latest.msi
Make sure you don't have any extensions which might modify PHPs
behaviour (like Zend Optimizer, Xdebug etc).
Previous Comments:
------------------------------------------------------------------------
[2007-06-26 12:54:53] irik at future-proof dot net
'./configure' '--with-mysql' '--with-jpeg-dir' '--with-gd'
'--with-png'
'--enable-ftp' '--with-png-dir'
'--with-apxs=/usr/local/apache/bin/apxs'
'--with-zlib-dir' '--with-libxml2' '--with-openssl-dir'
'--with-freetype-dir' '--enable-exif'
Apache/1.3.33 (Unix) PHP/5.2.3 mod_ssl/2.8.23 OpenSSL/0.9.8
I get the same result when run from command line as I do within the web
server.
What else can I do or provide to help recreate this "bug"? I have
worked around the issue in my code but would still like to do what I can
to get to the bottom of this very unusual behaviour.
------------------------------------------------------------------------
[2007-06-25 18:48:03] tony2001@php.net
Cannot reproduce.
------------------------------------------------------------------------
[2007-06-15 06:28:05] irik at future-proof dot net
Description:
------------
on linux (slackware) the __destruct method seems to be called twice,
even before. On windows32 this behaviour is not seen. Perhaps I
misunderstand the role of __destruct, but that would not explain why the
behaviour differs between platforms.
Reproduce code:
---------------
$Test = new Test();
echo $Test->strtolower("foo bar") . "<br />";
class Test {
public function __construct() {
}
public function __call($function, $arguments) {
return call_user_func_array($function, $arguments);
}
public function __destruct() {
echo "here i am<br />";
}
}
Expected result:
----------------
foo bar
here i am
Actual result:
--------------
here i am
foo bar
here i am
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=41696&edit=1