Answers:
他们的结果完全一样 ; 所以,没有区别。
例如,以下两行:
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__
是(或应该是)更快。
作为参考,请参见手册的“ 魔术常数”部分(引用):
__DIR__
:文件目录。
如果在include中使用,则返回包含文件的目录。
等同于dirname(__FILE__)
。
除非它是根目录,否则此目录名称不带斜杠。
(在PHP 5.3.0中添加。)
__DIR__
更快。