猿问

include引入一个页面的时候非要用dirname(__FILE__) ?为什么呢?

php include引入一个页面的时候为什么非得用dirname(__FILE__) ??
用 “../” 来到上一级或上2级 不行吗??
有区别吗?? 看那么多包含 好费事的- -。。
高手帮我解答下...
我想知道 有什么好、坏的之处 有啥区别, 还是个人习惯

千万里不及你
浏览 467回答 2
2回答

茅侃侃

dirname() 函数返回路径中的目录部分。dirname(__FILE__) 取到的是当前文件所在的绝对目录../ 这里是上一级目录如果是 ./ 则是同级目录举个例子:假设,现在的文件目录是 D:\www\yoursite\test.php那么dirname(__FILE__) 就是D:\www\yoursitedirname(__FILE__).'/../‘ 这里就是 D:\www\yoursite/../ 实际上就是路径D:\wwwdirname(__FILE__).'/../popup.php' 实际上就是路径 D:\www\popup.php

MMTTMM

“../”适合于简单的一个文件包含于另一个文件。而dirname(__FILE__) 大多适合多层,更复杂多多文件包含,维护起来更容易。如果仅仅是a.php文件包含b.php文件,可以直接用 include的dirname(__FILE__)或者 “../” 均可,一般不会出错的。但往往是 a包含了 b文件,另外c.php包含了a文件那么使用 “../” 的话,就会造成c包含a时再载入b文件时路径出错,而使用dirname(__FILE__)时,c包含a时会以dirname(__FILE__)映射出c和a的路径关系,a再到包含b文件时,使用dirname(__FILE__),会映射出a和b的相应目录关系。这个就不会造成不同目录多次包含时路径出错!注意 __FILE__,代表 这个代码所在文件的文件名, 比如 c用dirname(__FILE__)包含a,那么 __FILE__代码是c文件,而c包含a后,a再用dirname(__FILE__)包含到b时,那么__FILE__在执行时就是a文件,这个依次类推,文件的包含及路径永远也不会出错!
随时随地看视频慕课网APP
我要回答