實例講解php中實現代碼重用的兩個函數:include()和require()
無論你在開發的網站規模的大小,都應該意識到代碼重用的重要性,無論這些代碼是html、還是php代碼。例如,你必須至少每年改變一次包含版權信息的頁腳,如果你的網站含有1000個頁面,每年修改一次也是個很煩人的事兒。
在php中,至少有幾個函數可以幫助你實現代碼重用的目的,所使用的函數取決于你所重用的代碼,主要的函數有:
* include() and include_once()
* require() and require_once()
include()函數包含并對給定的文件進行計算,例如:
include('/home/me/myfile');
在include文件中的任何代碼都在include()出現的代碼范圍內執行,你可以通過聯合使用include()和fopen()在自己的服務器上包含靜態文件,在另一臺服務器上包含目標文件。
include_once()的功能與include()相同,二者之間的區別在于它會檢查一個文件中的代碼是否已經包含在現有的腳本中,如果代碼已經存在,則不會再次包含它。
require()函數用給定文件的內容取代它本身,這一代替過程發生在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>
另一方面,我經常在文件的開始使用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運行的系統上的用戶可以訪問這些文件即可,你可以使這些文件具有任何后綴,或者不使用后綴。
使用include()和require()對在網站中的元素進行具體化是一種普遍的現象,并在需要對網站升級時,給你帶來很大的方便。
新聞熱點
疑難解答