ID: 36971
Comment by: edwardzyang at thewritingpot dot com
Reported By: k at phpkoala dot com
Status: Open
Bug Type: Documentation problem
Operating System: Linux
PHP Version: 5.1.2
New Comment:
It's tough to understand what your problem is without more code. If you
are doing:
for ($i = 0; $i < 1000000; $i++) {
$obj = new Foo();
// do stuff with $obj
unset($obj);
}
That should be sufficient. Could you be more specific?
Usually, if the PHP interpreter is running out of memory, you've got
some bad code that needs refactoring.
Previous Comments:
------------------------------------------------------------------------
[2007-04-06 20:41:05] joel at propbot dot com
The problem comes into mind when your creating an object and going
through a loop. The script just grows and grows until your out of
memory.
We are creating an object doing what we need to do with it and trying
to destroy it. Anybody have a solution?
I really don't want to have to go through every variable inside the
object and do an unset().
------------------------------------------------------------------------
[2006-07-06 15:52:14] [EMAIL PROTECTED]
It's absurd (well, maybe not absurd, but not needed) as long as PHP has
destructor methods.
------------------------------------------------------------------------
[2006-07-06 15:41:19] keko_metal at hotmail dot com
Scott, do you really think that
$object->im_done_please_kill_me() is an absurd idea?
------------------------------------------------------------------------
[2006-06-18 19:21:40] henke dot andersson at comhem dot se
In php5 no php variable actualy contains the object instances, they
contains pointers to instances. Thats why unseting the $this variable
does nothing. Just because you stop knowing where it is doesn't mean it
ceases to exist.
And the $this variable is a special case. It would not make sence to
unset it.
As far as I can understand, $this shouldn't even affect the garbage
collection, if it did(and php doesn't adjust for recurive pointers) the
garbage collection would never destroy objects instances!
------------------------------------------------------------------------
[2006-05-04 10:31:02] gixxman at gmali dot com
class FalseClass
{
public function __destruct()
{
echo "Gonna die, man";
}
}
$f = new FalseClass;
unset($f);
RESULTS:
Gonna die, man
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/36971
--
Edit this bug report at http://bugs.php.net/?id=36971&edit=1