一、作用
include()與require()語句的作用是包含并運(yùn)行指定文件。
二、include()與require()區(qū)別
這兩種結(jié)構(gòu)除了在如何處理失敗之外完全一樣。include() 產(chǎn)生一個警告,腳本會繼續(xù)運(yùn)行。require() 則導(dǎo)致一個致命錯誤,腳本會停止運(yùn)行。
換句話說,如果想在遇到丟失文件或遇到錯誤時停止處理頁面就用 require()。如果想在遇到錯誤時繼續(xù)處理頁面就用 include()。
注意:使用include()時,在 PHP 4.3.5 之前,包含文件中的語法錯誤不會導(dǎo)致程序停止,但從此版本之后會。也就是說在PHP 4.3.5 之后,使用include()文件不存在時,腳本不會繼續(xù)執(zhí)行。
三、include_once()、require_once()
include_once() 語句在腳本執(zhí)行期間包含并運(yùn)行指定文件。此行為和 include() 語句類似,唯一區(qū)別是include_once()會先判斷一下這個文件在之前是否已經(jīng)被包含過,如已經(jīng)包含,則忽略本次包含。include_once() 應(yīng)該用于嵌套包含的情況下,想確保它只被包含一次,以避免函數(shù)重定義、變量重新賦值等問題。
(require_once()同理。)
四、需要注意的問題
1、路徑問題
特別是嵌套包含的時候,一定得注意包含文件的路徑。
比如 A文件包含了B文件,B文件包含了C文件,A,B,C文件都不在同一個文件夾下,這個時候往往很容易出錯誤。
解決方案:使用絕對路徑,即可以使用 dirname(__FILE__) 語句,這句的意思是獲得當(dāng)前腳本的絕對路徑。如:require_once(dirname(__FILE__).'/config.php');
2、效率問題
include_once(),require_once(),與include(),require()比較,效率要低一些,因?yàn)樗麄冎辽俚孟扰袛嘁幌逻@個文件是否已包含。這一問題在PHP5版本有很大改進(jìn),不過效率還是有差別。
更多信息請查看IT技術(shù)專欄