I was wondering what exactly happens when I do this:
$my_variable = 'foo';
function whatever(){
$my_variable = 'bar';
global $my_variable;
}
I know that, within the scope of the function $my_variable
is now 'foo'.
What's going on internally? When I do $my_variable = 'bar';
inside my function, I've created a local variable. When I do global $my_variable;
on the next line what exactly happens? The local one is automatically deleted?
Yes, the local one is automatically deleted or probably better worded, it is replaced with the global variable.
Up until the
global
is processed, the function will be using the localbar
copy of the varaible. Once it's declared global, the local version is hidden (or maybe destroyed, not sure...) and only the global version is available. e.g:Think of it like this: