__DIR__和dirname(__ FILE__)在PHP中有什么区别吗?
它对我来说看起来一样,但我不确定,
因为有很多项目使用dirname(__FILE__)
。
他们的结果是完全一样的 ; 所以,没有什么区别。
例如,以下两行:
var_dump(dirname(__FILE__)); var_dump(__DIR__);
两者会给出相同的输出:
string '/home/squale/developpement/tests/temp' (length=37)
但是,至less有两点区别:
-
__DIR__
仅在PHP> = 5.3时存在- 这就是
dirname(__FILE__)
被广泛使用的原因
- 这就是
-
__DIR__
是在编译时计算的,而dirname(__FILE__)
是指函数调用,在执行时被评估- 所以,
__DIR__
是(或者应该)更快。
- 所以,
作为参考,请参阅手册的魔术常数部分(引用) :
__DIR__
:文件的目录。
如果在include中使用,则返回包含文件的目录。
这相当于dirname(__FILE__)
。
除非目录名是根目录,否则该目录名没有结尾的斜杠。
(在PHP 5.3.0中添加)