__FILE__和$ _SERVER ['SCRIPT_FILENAME']有什么区别?

时间:2015-04-17 11:00:58

标签: php

define('QA_BASE_DIR', dirname(empty($_SERVER['SCRIPT_FILENAME']) ? __FILE__ : $_SERVER['SCRIPT_FILENAME']).'/');

__FILE__$_SERVER['SCRIPT_FILENAME']之间有什么区别?

2 个答案:

答案 0 :(得分:3)

从PHP文档中,不同之处在于$_SERVER['SCRIPT_FILENAME']包含当前脚本的绝对路径,而在CLI模式下,可能包含相对路径。

如果在包含文件中使用,

__FILE__将包含所包含文件的路径,如果在主文件中使用,则包含主文件的路径。

答案 1 :(得分:1)

来自http://www.qualitycodes.com/tip/17/difference-between-serverscriptfilename-and-file.html的Blackquoting:

  

$_SERVER['SCRIPT_FILENAME']变量将返回相同的路径,无论它是在主文件中使用还是在包含的文件中使用__FILE__变量将返回包含文件的路径(如果在包含的文件中使用)和主文件的路径,如果在主文件中使用。我指的是主文件,其名称显示在浏览器的地址栏中。