PHP 4.0 Bug #6962: Unsetting a global object in a function doesn't affect other functions
| From: | rubein at earthlink dot net | Date: | Sat, 30 Sep 2000 19:57:46 +0000 |
| Subject: | PHP 4.0 Bug #6962: Unsetting a global object in a function doesn't affect other functions | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-33920@lists.php.net to get a copy of this message | ||
From: rubein@earthlink.net
Operating system: Linux 2.2.16
PHP version: 4.0.1pl2
PHP Bug Type: Scripting Engine problem
Bug description: Unsetting a global object in a function doesn't affect other functions
script:
<?
class TEST {
var $foo;
}
function one()
{
global $object;
$object = new TEST();
$object->foo = "bar";
echo "\none() dump of object before unset\n";
var_dump($object);
unset($object);
echo "\none() dump of object after unset\n";
var_dump($object);
two();
}
function two()
{
global $object;
echo "\ntwo() dump of object after unset\n";
var_dump($object);
}
echo "<PRE>\n";
one();
echo "\n(no function) dump of object after unset\n";
var_dump($object);
produces:
one() dump of object before unset
object(test)(1) {
["foo"]=>
string(3) "bar"
}
one() dump of object after unset
NULL
two() dump of object after unset
object(test)(1) {
["foo"]=>
string(3) "bar"
}
(no function) dump of object after unset
object(test)(1) {
["foo"]=>
string(3) "bar"
}
unset()ing an globally defined object within a function doesn't unset it globally - it can
still be referred to in other functions.