PHP 中的 __DIR__ 和 dirname(__FILE__) 有什么区别吗?
2022-08-30 06:59:33
对我来说看起来是一样的,但我不确定,
因为有许多项目使用 .dirname(__FILE__)
对我来说看起来是一样的,但我不确定,
因为有许多项目使用 .dirname(__FILE__)
它们的结果完全相同;所以,这没有什么区别。
例如,以下两行:
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__
:文件的目录。
如果在包含中使用,则返回所包含文件的目录。
这等效于 。
此目录名称没有尾部斜杠,除非它是根目录。
(在 PHP 5.3.0 中添加。dirname(__FILE__)