1、使用語法和簡介php
一、include()
語法:include(/path/to/filename)
include()語句將在其被調用的位置處包含一個文件。包含一個文件與在該語句所在位置複製制定文件的數據具備相同內容的效果。
使用include()時能夠忽略括號。函數
能夠根據條件來執行include()語句。在條件語句中使用include()有個怪現象,它必須包圍在語句塊大括號中,或者用其餘語句包圍符括起來。網站
二、include_once()
語法:include_once(filename)ui
include_once() 語句在腳本執行期間包含並運行指定文件。此行爲和 include() 語句相似,惟一區別是include_once()會先判斷一下這個文件在以前是否已經被包含過,如已經包含,則忽略本次包含。
include_once() 應該用於嵌套包含的狀況下,想確保它只被包含一次以免函數重定義,變量從新賦值等問題。模板
小結:include_once()函數的做用與include相同,不過它會首先驗證是否已經包含了該文件。若是已經包含,則再也不執行include_once。不然,則必須包含該文件。除了這一點與include徹底相同。效率
三、require()
語法:require(filename)
require()在很大程度上與include相同,都是將一個模板文件包含到require調用坐在的位置。
require和include之間有兩點重要的區別。首先,不管require的位置如何,制定文件都將包含到出現require的腳本中。例如,即便require放在計算結果爲假的if語句中,依然會包含指定文件。
第二個重要的區別是:require出錯時,腳本將中止運行,而在使用include的狀況下,腳本將繼續執行。require
四、require_once()
語法:require_once(filename)
require_once() 語句在腳本執行期間包含並運行指定文件。此行爲和 require() 語句相似,惟一區別是require_once()會先判斷一下這個文件在以前是否已經被包含過,如已經包含,則忽略本次包含。
require_once() 應該用於嵌套包含的狀況下,想確保它只被包含一次以免函數重定義,變量從新賦值等問題。變量
小結:隨着網站愈來愈大,可能會出現重複包含某些文件。這也許不是問題,但又是修改了所包含文件的變量後,卻因爲後面再次包含原來的文件而被覆蓋,可能不但願出現這種狀況。還可能出現另外一個問題,即所包含文件中函數名的衝突。使用require_once就能夠解決這些問題。
require_once函數確保文件只包含一次。在遇到require_once後,後面再試圖包含相同的文件時將被忽略。file
2、區別總結語法
一、include()與require()語句區別。
二者區別:這兩種結構除了在如何處理失敗以外徹底同樣。
include() 產生一個警告,腳本會繼續運行。
require() 則致使一個致命錯誤,腳本會中止運行。
換句話說,若是想在遇到丟失文件或遇到錯誤時中止處理頁面就用 require()。若是想在遇到錯誤時繼續處理頁面就用 include()。
注意在 PHP 4.3.5 以前,包含文件中的語法錯誤不會致使程序中止,但今後版本以後會。
二、include_once()、require_once()與include()、require()的區別
include_once()和require_once()同樣,應該用於在腳本執行期間同一個文件有可能被包含超過一次的狀況下,想確保它只被包含一次以免函數重定義,變量從新賦值等問題。這就是include_once()和require_once()與include() 和require()的主要區別。
3、須要注意的問題
1.路徑問題
特別是嵌套包含的時候,必定得注意包含文件的路徑。
好比 A文件包含了B文件,B文件包含了C文件,A,B,C文件都不在同一個文件夾下,這個時候每每很容易出錯誤。
解決方案:可使用 dirname(__FILE__) 語句,這句的意思是得到當前腳本的絕對路徑。如:require_once(dirname(__FILE__).'/config.php');
2.效率問題include_once(),require_once(),與include(),require()比較,效率要低一些,由於他們至少得先判斷一下這個文件是否已包含。這一問題在PHP5版本有很大改進,不過效率仍是有差異。