define('QA_BASE_DIR', dirname(empty($_SERVER['SCRIPT_FILENAME']) ? __FILE__ : $_SERVER['SCRIPT_FILENAME']).'/');
__FILE__
和$_SERVER['SCRIPT_FILENAME']
之间有什么区别?
答案 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__
变量将返回包含文件的路径(如果在包含的文件中使用)和主文件的路径,如果在主文件中使用。我指的是主文件,其名称显示在浏览器的地址栏中。