On Mon, 2009-08-24 at 15:13 +0200, Ralph Deffke wrote: > that is correct and that is the problem, and even that is not all !!! > > try this > <?php > > > abstract class a { > public function __construct(){ > echo "constructing....<br>"; > } > public function __detruct(){ > echo "destructing....<br>"; > } > } > > class b extends a{ > > } > $c = new b(); > unset( $c ); > ?> > > the constructor is inherited, the destructor not !! > > PHP 5.2.9-1 and > PHP 5.3.0 behave the same > > las trampas de la vida > > > > ralph_deffke@xxxxxxxx > > > > "Stuart" <stuttle@xxxxxxxxx> wrote in message > news:a5f019de0908240606x5fdca70bkb31dd32b072e52b6@xxxxxxxxxxxxxxxxx > > 2009/8/24 kranthi <kranthi117@xxxxxxxxx>: > > > unset($obj) always calls the __destruct() function of the class. > > > > > > in your case clearly you are missing something else. Probably > > > unset($anobject) is not being called at all ? > > > > That's not entirely correct. PHP uses reference counting, so if > > unsetting a variable did not cause the object to be destructed then > > it's highly likely that there is another variable somewhere that is > > holding a reference to that object. > > > > -Stuart > > > > -- > > http://stut.net/ > > > That would seem sensible to me though really. A constructor only bears true for the base class, so any classes which inherit it must incorporate all the constructor parts. A destructor doesn't know about further classes which will need to inherit it, so it shouldn't be inherited and the new class should sort things out. At least, that's how I see it. Thanks, Ash http://www.ashleysheridan.co.uk -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php