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

Reply via email to