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

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

 



this is also not the full truth try this and it works
what are the circumstances that is causing this problem then, yes I do have
distributed references over my script and there are clearly references still
set, however after running the snipped script I can not see what I do
special in my script causing the problem. I even tried with public and
private static in other objects. it works. however the manual indicates the
refernce counter has to be 0.

<?php


abstract class a {
  public function __construct(){
    echo "constructing....<br>";
  }
  public function __destruct(){
    echo "destructing....<br>";
  }
}

class b extends a{

}

$c = new b();

$d = $c ;   // works
$f[] = $c ; // works

class e {
  private $m;

  public function setM( $m ){
    $this->m = $m;
  }
}

$o = new e();
$o->setM( $c ); // works


unset( $c );


?>
"Lupus Michaelis" <mickael+php@xxxxxxxxxxxx> wrote in message
news:41.F9.03363.011929A4@xxxxxxxxxxxxxxx
> kranthi wrote:
> > unset($obj) always calls the __destruct() function of the class.
>
>    Never calls the dtor. The dtor will be called only when the reference
> count reaches 0.
>
> class c { function __destruct() { echo 'dying !' ; } }
> $v1 = new c ;
> $v2 = $v1 ;
>
> unset($v1) ; // don't call the dtor
> unset($v2) ; // call the dtor
>
> -- 
> Mickaël Wolff aka Lupus Michaelis
> http://lupusmic.org



-- 
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