对我来说看起来一样,但我不确定,
因为有很多项目使用dirname(__FILE__)
。
答案 0 :(得分:178)
他们的结果完全相同;所以,没有区别。
例如,以下两行:
var_dump(dirname(__FILE__));
var_dump(__DIR__);
两者都会给出相同的输出:
string '/home/squale/developpement/tests/temp' (length=37)
但是,至少存在两个不同之处:
__DIR__
仅存在 PHP> = 5.3
dirname(__FILE__)
被更广泛使用的原因__DIR__
在编译时进行评估,而 dirname(__FILE__)
表示函数调用,并在执行时进行评估
__DIR__
(或应该)更快。
作为参考,请参阅手册(引用)的Magic constants部分:
__DIR__
:文件的目录。
如果在包含内使用,则 包含文件的目录是 回。
这相当于dirname(__FILE__)
。
这 目录名称没有 除非它是根,否则尾部斜杠 目录。
(在PHP 5.3.0中添加。)