On 17 sep. 2012, at 10:55, Frank Arensmeier <farensme...@gmail.com> wrote:
> 17 sep 2012 kl. 10.50 skrev Camilo Sperberg: > >> Hello list, I have a little question with PHP's internal working. I've >> managed to reduce the test to the following lines: >> >> $globalVariable = 'i am a global variable'; >> function testFunction() { >> global $globalVariable; >> unset($globalVariable); >> } >> >> testFunction(); >> >> if(isset($globalVariable)) { >> var_dump('global variable IS set'); >> } else { >> var_dump('global variable is NOT set'); >> } >> >> >> >> When executing the above test, you will get printed that the global variable >> is set, despite unsetting it in the function. Is it really the intention to >> unset a global variable inside a function locally or have I just happen to >> found a little bug? >> >> unreal4u-MBP:~ unreal4u$ php --version >> PHP 5.3.13 with Suhosin-Patch (cli) (built: Jun 20 2012 17:05:20) >> Copyright (c) 1997-2012 The PHP Group >> Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies >> with Xdebug v2.3.0dev, Copyright (c) 2002-2012, by Derick Rethans >> >> If it is expected behavior, is there any documentation on why this is done >> this way? >> >> Greetings and thanks. >> -- >> PHP General Mailing List (http://www.php.net/) >> To unsubscribe, visit: http://www.php.net/unsub.php >> > Sometimes, it helps reading the manual... > > http://lmgtfy.com/?q=php+unset+global > > "If a globalized variable is unset() inside of a function, only the local > variable is destroyed. The variable in the calling environment will retain > the same value as before unset() was called." > [...] > "To unset() a global variable inside of a function, then use the$GLOBALS > array to do so:" > > Took about 1 minute to find out. > > /frank Doh! Only thing I can say is that I tried searching but without any relevant terms… Thanks and also thanks to Simon! Greetings. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php