PHP 4.0 Bug #8937: unset() in context with GLOBAL

From: Date: Fri, 26 Jan 2001 15:25:19 +0000
Subject: PHP 4.0 Bug #8937: unset() in context with GLOBAL
Groups: php.dev 
Request: Send a blank email to php-dev+get-45049@lists.php.net to get a copy of this message
From: aulbach@unter.franken.de Operating system: Linux PHP version: 4.0.3pl1 PHP Bug Type: Scripting Engine problem Bug description: unset() in context with GLOBAL unset() in context with GLOBAL has a serious bug. This bug appeard, when I changed a PHP3-program to PHP4. The problem is now, that constructs like the following are several times in this old program. Sorry, I haven't checked, if this problem is fixed in 4.0.4. If so, perhaps someone can tell me? TIA. Think this problem depends Zend, cause ZEND_CHANGES tells me: "unset() is no longer a function, but a statement. It was never documented as a function so the impact should be no bigger than nada." I have made a test-case: <? function test1 ($dir) { GLOBAL $x; unset($x); $x[$dir]=true; mydirname($dir); } function test2 ($dir) { GLOBAL $x; ####### unset($x); no unset! $x[$dir]=true; mydirname($dir); } function mydirname ($dir) { GLOBAL $x; $dir=ereg_Replace('/[^/]*$','',$dir); if (!empty($dir)) { echo "'$dir'<br>"; flush(); mydirname($dir); $x[$dir]=true; } } $dir="/hugo/bla/fasel/test"; # first char must be '/' ! unset($x); test1($dir); echo "DIRS called with function test1(): "; print_r($x); echo "<br>"; unset($x); test2($dir); echo "DIRS called with function test2(): "; print_r($x); ?> -- Edit Bug report at: http://bugs.php.net/?id=8937&edit=1

« previous php.dev (#45049) next »