Re: unset( $anobject) does not invoce __destruct()
am 24.08.2009 15:06:44 von Stut
2009/8/24 kranthi :
> 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/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
Re: unset( $anobject) does not invoce __destruct()
am 24.08.2009 15:13:49 von Ralph Deffke
that is correct and that is the problem, and even that is not all !!!
try this
abstract class a {
public function __construct(){
echo "constructing....
";
}
public function __detruct(){
echo "destructing....
";
}
}
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@yahoo.de
"Stuart" wrote in message
news:a5f019de0908240606x5fdca70bkb31dd32b072e52b6@mail.gmail .com...
> 2009/8/24 kranthi :
> > 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/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
Re: unset( $anobject) does not invoce __destruct()
am 24.08.2009 15:20:01 von Ralph Deffke
typing error sorry
forget my last post
is there a was to destroy an object if there is hold a reference somewhere?
"Stuart" wrote in message
news:a5f019de0908240606x5fdca70bkb31dd32b072e52b6@mail.gmail .com...
> 2009/8/24 kranthi :
> > 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/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php