我们都知道,要获取当前PHP脚本所在目录的绝对路径 dirname(__FILE__) 和 __DIR__都可以实现
。那么什么情况下用 dirname(__FILE__)
,什么情况下用 DIR
呢?它们之间有什么区别?
功能和效率
dirname(__FILE__)由两部分组成, __FILE__ 魔术变量和 dirname() 函数
。FILE
是当前脚本的绝对路径,通过 dirname()
函数后,就可以获得脚本所在目录的绝对路径。
举个栗子,有个 hello.php
文件,其部署在服务器的目录是:/home/www/website/hello.php
那么,
__FILE__
的值就是:/home/www/website/hello.php
dirname(__FILE__)
返回就是:/home/www/website/
如果我们在 hello.php
用 __DIR__
全局变量,就可以直接获得所在目录的绝对路径:/home/www/website/
,和dirname(__FILE__)
效果完全一样。
在实现同样功能的情况下,dirname(__FILE__)
多了一层函数调用。所以, __DIR__ 比 dirname(__FILE__)
在效率上有优势。
PHP版本支持
FILE 和 dirname() 函数从 PHP 4.0.2 就开始启用。
DIR 变量则是 PHP5.3.0 新增的。
所以,如果你的PHP版本大于等于PHP5.3.0,建议使用 DIR。否则,最好还是用 dirname(FILE),以确保程序不会出错。
未经允许不得转载:下一个课程 » PHP获取绝对路径dirname(__FILE__)和__DIR__比较