A little gotcha to watch out for:If you turn off RegisterGlobals and related, then use get_defined_vars(), you may see something like the following:<?phpArray( [GLOBALS] => Array ( [GLOBALS] => Array *RECURSION* [_POST] => Array() [_GET] => Array() [_COOKIE] => Array() [_FILES] => Array() ) [_POST] => Array() [_GET] => Array() [_COOKIE] => Array() [_FILES] => Array())?>Notice that $_SERVER isn't there. It seems that php only loads the superglobal $_SERVER if it is used somewhere. You could do this:<?phpprint '<pre>' . htmlspecialchars(print_r(get_defined_vars(), true)) . '</pre>';print '<pre>' . htmlspecialchars(print_r($_SERVER, true)) . '</pre>';?>And then $_SERVER will appear in both lists. I guess it's not really a gotcha, because nothing bad will happen either way, but it's an interesting curiosity nonetheless.