一、作用
include()與require()語句的作用是包含並運行指定文件。
二、include()與require()區別
這兩種結構除了在如何處理失敗之外完全一樣。include() 產生一個警告,腳本會繼續運行。require() 則導致一個致命錯誤,腳本會停止運行。
換句話說,如果想在遇到丟失文件或遇到錯誤時停止處理頁面就用 require()。如果想在遇到錯誤時繼續處理頁面就用 include()。
注意:使用include()時,在 PHP 4.3.5 之前,包含文件中的語法錯誤不會導致程序停止,但從此版本之後會。也就是說在PHP 4.3.5 之後,使用include()文件不存在時,腳本不會繼續執行。
三、include_once()、require_once()
include_once() 語句在腳本執行期間包含並運行指定文件。此行為和 include() 語句類似,唯一區別是include_once()會先判斷一下這個文件在之前是否已經被包含過,如已經包含,則忽略本次包含。include_once() 應該用於嵌套包含的情況下,想確保它只被包含一次,以避免函數重定義、變量重新賦值等問題。
(require_once()同理。)
四、需要注意的問題
1、路徑問題
特別是嵌套包含的時候,一定得注意包含文件的路徑。
比如 A文件包含了B文件,B文件包含了C文件,A,B,C文件都不在同一個文件夾下,這個時候往往很容易出錯誤。
解決方案:使用絕對路徑,即可以使用 dirname(__FILE__) 語句,這句的意思是獲得當前腳本的絕對路徑。如:require_once(dirname(__FILE__).'/config.php');
2、效率問題
include_once(),require_once(),與include(),require()比較,效率要低一些,因為他們至少得先判斷一下這個文件是否已包含。這一問題在PHP5版本有很大改進,不過效率還是有差別。