在我們開發一個網站的時候,必須要考慮到代碼重用的問題, 不管你的網站規模的大小,也不管你維護和更新的次數,這一問題都是非常麻煩的。我們今天就向大家介紹這方面的解決辦法,那就是PHP函數include()的具體應用。
* include() and include_once()
* require() and require_once()
PHP函數include()包含並對給定的文件進行計算,例如:
include('/home/me/myfile');
在include文件中的任何代碼都在PHP函數include()出現的代碼范圍內執行,你可以通過聯合使用include()和fopen()在自己的服務器上包含靜態文件,在另一台服務器上包含目標文件。
include_once()的功能與include()相同,二者之間的區別在於它會檢查一個文件中的代碼是否已經包含在現有的腳本中,如果代碼已經存在,則不會再次包含它。
require()函數用給定文件的內容取代它本身,這一代替過程發生在PHP引擎編譯代碼期間,而不是在執行期間進行,它不象PHP函數include()那樣會首先進行計算。require()函數更多地用在靜態元素中,而include()更多地用於動態元素中。與include_once()類似的是,require_once()將首先檢查是否已經插入給定的代碼,如果代碼已經存在,就不再插入了。
為也了解其內容,在版權信息、靜態文字和其他不包含變量的元素或者依賴其他正在執行的腳本的元素中我更趨向於使用require函數。例如:
- <HTML>
- <HEAD><TITLE>Something</TITLE></HEAD>
- <BODY>
- [a lot of content]
- <?
- // insert copyright
- require('/home/me/mycopyright');
- ?>
- </BODY>
- </HTML>
另一方面,我經常在文件的開始使用PHP函數include()來控制許多的函數:
- <?
- //得到函數庫
- include('/home/me/myfunctions');
- // do PHP things with my functions ?>
- <HTML>
- <HEAD><TITLE>Something</TITLE></HEAD>
- <BODY>
- [a lot of content]
- </BODY>
- </HTML>
下一個問題就該是“include和require文件在哪裡?”,對這個問題簡單的回答是,“系統中的任意地方。”如果你的代碼中包含有帶有用戶名和口令的數據庫連接,你肯定不會將它們都放在文檔根目錄中向所有的人都開放。
included或required文件可以在系統上的任何地方,只要PHP運行的系統上的用戶可以訪問這些文件即可,你可以使這些文件具有任何後綴,或者不使用後綴。
使用PHP函數include()和require()對在網站中的元素進行具體化是一種普遍的現象,並在需要對網站升級時,給你帶來很大的方便。