On 21 Oct 2008, at 22:08, Jochem Maas wrote:
Mike van Riel schreef:
Dan Joseph wrote:
Hi,
I want to make sure I completely understand __destruct() and when
its
hit...
Understand that it will run if all references to a particular
object are
removed, but is that also true when a page ends its execution?
Example, I call a database class. It constructs, connects, then
my page
pulls some stuff out of the database, and then the php script
ends. Does
this also cause the deconstruct to execute?
When a script ends everything is released (with some small
exceptions),
thus also all references to instances of classes.
Thus AFAIK a deconstructor will always be called at the end of script
execution.
but you have no control over what order dtors are called and you
can't make
any assumptions about state of file handles to STDIN/STDOUT and
things like
that ... personally I find dtors run at end of script to be nigh on
useless.
I use destructors to update dirty objects in memcache. I also use them
in my template class to optionally automagically output the footer
without needing an explicit call on each page.
They're far from useless.
-Stut
--
http://stut.net/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php