PHP 4.0 Bug #6962: Unsetting a global object in a function doesn't affect other functions

From: 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.

« previous php.dev (#33920) next »