PHP中__FILE__和$_SERVER['SCRIPT_FILENAME']的区别

__FILE__

返回文件的完整路径和文件名。如果用在被包含文件中,则返回被包含文件的完整路径和文件名

$_SERVER['script_filename']

返回当前执行脚本的绝对路径

d:/web/abc/test.php
<?php
echo '$_SERVER["SCRIPT_FILENAME"] = "'.$_SERVER["SCRIPT_FILENAME"].'"';
echo '<br>';
echo '__FILE__= "'.__FILE__.'"';
?>
---------------------------------------
d:/web/require.php
<?php
require 'abc/test.php';
?>
 运行require.php,运行结果如下:
$_SERVER["SCRIPT_FILENAME"] = "d:/web/require.php"
__FILE__= "D:\web\abc\test.php"