I guess I learned it wrong

Globals.

When I first started learning PHP it was well after the push to ship PHP with register_globals off by default, so I never learned to use them. However, I also thought the $GLOBALS variable was off limits as well.

I was wrong.

It seems that this wonderful little variable can do more to help with variable scope than I ever thought possible.

Consider this code.

$var = "global";
function edit($n) {
    $GLOBALS['var'] = $n . " edit";
}
edit($var);
echo($var);

This code returns global edit when run. The $GLOBALS array is only made up of variables defined and set by the script – it doesn’t contain super globals like POST and GET vars and thus are safe from code contamination that might occur from someone trying to change variable content in your scripts.

Wow. I’ve got a whole new world set out in front of me now that I’ve learned references and that $GLOBALS are available.

Maybe I should be a little embarrassed that it took me this long to discover these two basic, basic gems of PHP but I’m not. For being self taught I’m not doing too bad.

Now, off to learn OOP.

Tagged as: php globals