Hi, i tested it with php 5.1.3-dev snap and it works correctly for me. btw. $return = $notdefined_variable; is a bad style for coding and this happens in your situation in a undefined behavior. If you think this is a bug please go to http://bugs.php.net and report them there. 2006/2/4, Bogdan Ribic <ribicb@xxxxxxxxx>: > > Hi all, > > I've found a strange bug with extract($GLOBALS, EXTR_REFS), and it > only shows up if you try to access a non-existent variable or array > member before that. Here's a demo script: > > > // Uncomment this line to see the problem > // $return = @$_GET['xx']; > > function extr_globals() { > extract($GLOBALS, EXTR_REFS); > }; > > function test($msg) { > $x = 'OK'; > $msg = 'wrong'; > return $x; > }; > > > echo test('login') . "\n"; > extr_globals(); > echo test('login'); > > If you run this script, it will output two OKs, as it should. If you > however uncomment the first line, one with $_GET assignment, it will > output an OK and then text "wrong". Tested with php 4.3.10 and 5.0.3 on > a windows machine. > > What actually happens is that extract($GLOBALS, EXTR_REFS) really messes > up nametables. If you step into test function with debugger, you will > see that all variables inside the function will already be "initialized" > to the value of the parameter $msg, and assigning to one var will > overwrite values in unrelated variables. I repeat, this only happens if > you tried to access non-existent var or array member before that. > > So it's a bug. Do I get a PHP T-shirt ? :-) > > Boban. > > > -- > > Open source PHP code generator for DB operations > http://sourceforge.net/projects/bfrcg/ > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > > -- Marco Kaiser