Require() Include() 之間的差異

PHP 中的 require() 及incude這二個建構子因為使用方式幾乎相同,讓人不容易分辨如何使用,所以研究了一下四者之間的差異。

一般對於

require()大多解釋為:可以引入在其它的檔案中的PHP程式碼,引入後將該位置中插入引入檔的資料,資料可以是變數、HTML語法、或是任何回傳的結果,若引入檔不在與當前執行的PHP相同路徑,則需要指定完整的路徑。除註解外不論在PHP程式中的任何位置皆會執行即使是在條件為假的判斷式中,若檔案不存在則發生Fatal error:  錯誤,程式並中止執行後續的程式碼.

incude()大多解釋為:可以引入在其它的檔案中的PHP程式碼,引入後將該位置中插入引入檔的資料,資料可以是變數、HTML語法、或是任何回傳的結果,若引入檔不在與當前執行的PHP相同路徑,則需要指定完整的路徑。incude()可以依條件進行載入與否,若檔案不存在則發生Warning: 警告訊息,程式會繼續執行後續的程式碼.

總結:

二者間的差異有二個,

  • 一是若引入檔不存在require()會停止執行後續的程式碼,而include()會繼續執行後續的程式碼。
  • 二是include()可以視條件是否引入,而require()不論任何條件皆會引入。

由於好奇,所以自己做了幾個測試,得到的結果且與書上寫的不同

require()也可視條件決定是否載入,並非一般所說的不論位置為何皆會引入。

require

實際上test2.php及test3.php並未被引入。

所以include()與require()只有當檔案不存在時後續是否繼續執行的差異。


Posted in 未分類 by with 52 comments.

Pingbacks & Trackbacks

    發佈留言

    發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *