Is there a best practice / recommendation when I want to use a variable declared outside of a function when it comes to using:
global $myVar
$GLOBALS['myVar']
Thank you.
Well, you should only use globals in limited circumstances, but to answer your question:
global
is potentially marginally faster (it will rarely make a difference).$GLOBALS
(not $GLOBAL
) is more readable, because every time you see it, you know you are accessing/changing a global variable. This can be crucial in avoiding nasty bugs.unset($GLOBALS['varname'])
, not global $varname; unset($varname);
.As to points 1 and 2, I'll quote Sara Golemon here:
What does that mean for your use of the
$GLOBALS
array? That's right, theglobal
keyword is technically faster. Now, I want to be really clear about one thing here. The minor speed affordance given by using your globals as localized [compiled variables] needs to be seriously weighed against the maintainability of looking at your code in five years and knowing that$foo
came from the global scope.something_using($GLOBALS['foo']);
will ALWAYS be clearer to you down the line thanglobal $foo; /* buncha code */ something_using($foo);
Don't be penny-wise and pound foolish..