包含文件include與require在php中的差異(含詳解)
一 使用文法和簡介
1、include()語法:
include(/path/to/filename)
include()語句將在其被呼叫的位置處包含一個檔案。包含一個文件與在該語句所在位置複製制定文件的資料具有相同內容的效果。
使用include()時可以忽略括號。在條件語句中使用include(),它必須包圍在語句區塊大括號中,或用其他語句包圍符括起來。
2、include_once()語法:
include_once(filename)
include_once() 語句在腳本執行期間包含並執行指定檔案。此行為和 include() 語句類似,唯一區別是include_once()會先判斷一下這個檔案在之前是否已經被包含過,如已經包含,則忽略本次包含。
3、require()語法:
require(filename)
require()在很大程度上與include相同,都是將一個模板檔案包含到require呼叫坐在的位置。 require和include之間有兩點重要的區別。
一、無論require的位置為何,制定檔案都會包含到出現require的腳本中。例如,即使require放在計算結果為假的if語句中,仍會包含指定檔。
二、require出錯時,腳本將停止執行,而在使用include的情況下,腳本將繼續執行。
4、require_once()語法:
require_once(filename)
require_once() 語句在腳本執行期間包含並執行指定檔。此行為和 require() 語句類似,唯一差異是require_once()會先判斷這個檔案在之前是否已經被包含過,如已經包含,則忽略本次包含。
二 區別總結
1、include()與require()語句差異。
範例一
include('hello.php'); echo 'include test final!';//include报错,但是会继续执行,显示:include test final! require('hello.php'); echo 'require test final!';//require报错,停止代码的执行。
小結:
⑴ include() 產生警告,腳本會繼續運作。
⑵ require() 則導致一個致命錯誤,腳本會停止運作。
換句話說,如果想在遇到遺失檔案或遇到錯誤時停止處理頁面就用 require()。如果想在遇到錯誤時繼續處理頁面就用 include()。
注意在 PHP 4.3.5 之前,包含檔案中的語法錯誤不會導致程式停止,但從此版本之後會。
2、require() 無論如何都會包含文件,而include() 可以選擇性地包含
範例二
<?php if(FALSE){ require('x.php'); } if(FALSE){ include('s.php'); } ?>
上面的程式碼中:x.php 一定會被包含,而 s.php 一定不會被包含。
3、include_once()、require_once()與include()、require()的區別
include_once()和require_once()一樣,應該用於在腳本執行期間同一個檔案有可能被包含超過一次的情況下,想確保它只被包含一次以避免函數重定義,變數重新賦值等問題。這就是include_once()和require_once()與include() 和require()的主要差異。
三 需要注意的問題
#1、路徑問題
特別是巢狀包含的時候,一定要注意包含文件的路徑。例如 A文件包含了B文件,B文件包含了C文件,A,B,C文件都不在同一個文件夾下,這時候往往很容易出錯。
解決方案:可以使用 dirname(__FILE__) 語句,這句話的意思是取得目前腳本的絕對路徑。如:require_once(dirname(__FILE__).'/config.php');
#2、效率問題
include_once(),require_once(),與include(),require()比較,效率要低一些,因為他們至少得先判斷一下這個檔案是否已包含。這問題在PHP5版有很大改進,不過效率還是有差異。
感謝大家的閱覽,希望閱讀之後能有所進步。
推薦教學:《PHP教學》
以上是包含文件include和require在php中的差異(含詳解)的詳細內容。更多資訊請關注PHP中文網其他相關文章!