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