php檔案之間相互引用路徑問題的一般處理方法

2021-09-30 05:46:47 字數 611 閱讀 1127

在其他web程式語言中相對路徑都是以當前處理檔案目錄為基準,而在php中並非如此。php中相對路徑是以當前工作目錄為基準的,並非以當前處理檔案目錄為基準,這樣在開發過程中帶來了不少的麻煩。比如會遇到一下問題

aaaa.php

bbbb.php

b1.php

cccc.php

以上目錄中c.php中require(../b1.php),在a.php中require(bbb/ccc/c.php),這樣就會出錯,因為a.php中會在../中找b1.php,會找不到b1.php檔案而報錯,解決以上引用問題的一般做法有兩種:

一、在a.php中加上define('root_path',dirname(__file__));

之後再加上

require root_path/bbb/ccc/c.php

二、 在根目錄下新建乙個檔案global.php,內容包含chdir(dirname(__file__));

在每個檔案中都將這個global.php包含進來。

綜上所述,如果a檔案引用了非同目錄的b檔案,且這個a檔案將被非同目錄的c檔案引用,那麼就要在a檔案中用dirname(__file__)來包含b檔案,否則在執行c檔案時,會報錯找不到b檔案。

標頭檔案相互引用優化問題

首先,兩個.m檔案互相引用.h檔案,不會出現問題的。但是比如在.h裡的某個屬性,型別是自定義的類,這時候如果只在.m裡引用就編不過了。這時候就要用 class。舉個例子 inte ce foo nsobject property nonatomic,strong bar somebar end就會報...

jsp,js,el,jstl相互之間變數引用

js中使用el表示式 var contextpath js中使用jsp定義的變數 string firstname wang jstl中使用el表示式 jstl中獲取session session.setattribute age 123 在頁面上顯示的就是123了 sessionscope指的是s...

C 引用dll檔案路徑問題

在呼叫非託管的dll檔案時,net是無法引用的,這個時候我們就需要用到dllimport來引用 using system.runtime.interopservices dll檔案。這個時候dllimport引用dll的路徑是這樣需找的,首先從當前應用程式bin目錄,然後system32資料夾下面尋...