2 回答

TA貢獻1842條經驗 獲得超21個贊
dirname() 函數返回路徑中的目錄部分。
dirname(__FILE__) 取到的是當前文件所在的絕對目錄
../ 這里是上一級目錄
如果是 ./ 則是同級目錄
舉個例子:
假設,現在的文件目錄是 D:\www\yoursite\test.php
那么dirname(__FILE__) 就是D:\www\yoursite
dirname(__FILE__).'/../‘ 這里就是 D:\www\yoursite/../ 實際上就是路徑D:\www
dirname(__FILE__).'/../popup.php' 實際上就是路徑 D:\www\popup.php

TA貢獻1869條經驗 獲得超4個贊
“../”適合于簡單的一個文件包含于另一個文件。
而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文件,這個依次類推,文件的包含及路徑永遠也不會出錯!
- 2 回答
- 0 關注
- 507 瀏覽
添加回答
舉報