发布网友 发布时间:2022-04-24 19:12
共2个回答
懂视网 时间:2022-04-07 14:58
我们都知道,要获取当前PHP脚本所在目录的绝对路径,dirname(__FILE__) 和 __DIR__都可以实现。那么什么情况下用 dirname(__FILE__),什么情况下用 __DIR__ 呢?它们之间有什么区别?(推荐学习:PHP视频教程)
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__) 在效率上有优势。
__FILE__ 和 dirname() 函数从 PHP 4.0.2 就开始启用。
__DIR__ 变量则是 PHP5.3.0 新增的。
所以,如果你的PHP版本大于等于PHP5.3.0,建议使用 __DIR__。否则,最好还是用 dirname(__FILE__),以确保程序不会出错。
热心网友 时间:2022-04-07 12:06
html的/,标示是网站的根目录,php的那个/,表示系统的根目录。php一般这么搞。dirname(__FILE__);用这个获取当前文件所在的目录,然后根据这个目录,向前或者向后定位。比如在你编辑的这个文件下面有个a.php,你可以这么写。require_once(dirname(__FILE__).'/a.php');要是比如,你现在编辑的文件是ctrl目录下,但是你想包含的文件在和ctrl同级别的一个目录server下,就这么写require_once(dirname(__FILE__).'/../a.php');