$_SERVER['PHP_SELF'] 当前执行脚本的文件名称 与document_root 相关 也就是和网站的根目录有关 输出文件对于网站根目录的位置信息 如果 PHP 以命令行方式运行,该变量在 PHP 4.3.0 之前无效。
$_SERVER['SCRIPT_NAME'] 当前执行脚本的路径
一般情况下$_SERVER['PHP_SELF'] 与 $_SERVER['SCRIPT_NAME'] 没有什么区别,但是如果PHP是以CGI模式运行的话两者就有差异。
$_SERVER['SCRIPT_NAME'] does a similar thing to $_SERVER['PHP_SELF']
except it is defined in the CGI standard. Many web servers, by defualt,
don't expose PHP_SELF when using CGI/FastCGI. They do expose
SCRIPT_NAME, so this is a better choice to use.
https://github.com/mantisbt/mantisbt/commit/ce27f552b438b25a56d11f3f2950088a64c8f329
$_SERVER['REQUEST_URL'] 当前执行脚本的URL地址 相对网站跟目录的URL地址
$_SERVER['SCRIPT_FILENAME'] 当前执行脚本的绝对路径名 输出文件在硬盘中所处绝对路径
__FILE__ 文件的完整路径和文件名。如果用在包含文件中,则返回包含文件名。自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径,而在此之前的版本有时会包含一个相对路径。
$_SERVER['SCRIPT_FILENAME'] 和 __SELF__ 都是返回文件的绝对路径,两者区别在于 __FILE__ 如果在包含文件中的话 输出的是被包含文件的绝对路径。