The values of $SERVER['PHP_SELF'] and $PHP_SELF are the same. The difference between them is the availability and scope. The $PHP_SELF variable won't be available (i.e. won't be defined) if register_globals is off in the php.ini file. If register_globals is off, you'll have to use $SERVER, $GET, $POST, etc. Also, $SERVER, $GET, $_POST, etc are superglobals. i.e. before you had to do
function func() {
global $PHP_SELF;
print $PHP_SELF;
}
But now you can just do
function func() {
print $_SERVER['PHP_SELF'];
}
In other words, you don't have to tell PHP that $_SERVER is a global variable.
Diego