On Mon, Jul 2, 2012 at 1:58 PM, Nick Chalk <n...@loadbalancer.org> wrote: > Afternoon all. > > I seem to be having a little trouble with extending the > SimpleXMLElement class. I would like to add a destructor to the > subclass, but am finding that it is not called. > > Attached is a minimal demonstration of the problem. The XMLConfig > class extends SimpleXMLElement, and its destructor is not called. The > XMLConfig2 class, which does not use inheritance, does have its > destructor called. > > The test platform is CentOS 6.2, with PHP version 5.3.3. > > What am I missing? > > Thanks for your help. > Nick.
Hi Nick, This is most likely a bug in PHP. A deconstructor is called when there are no references left to the object. Since this class uses the libXML library, it is likely that there are still references from the libXML open on the object, which is why it will never be destroyed. Anyway, you should report this bug to the PHP devs (at bugs.php.net). If you really need this, it's probably best to create a class that does not really extend SimpleXMLElement, but you create one inside the constructor, and just forward all function calls to the SimpleXMLElement object you've created in the constructor. - Matijn -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php