Re: unset( $anobject) does not invoce __destruct()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux