Require() Include() 之間的差異
PHP 中的 require() 及incude這二個建構子因為使用方式幾乎相同,讓人不容易分辨如何使用,所以研究了一下四者之間的差異。
一般對於
require()大多解釋為:可以引入在其它的檔案中的PHP程式碼,引入後將該位置中插入引入檔的資料,資料可以是變數、HTML語法、或是任何回傳的結果,若引入檔不在與當前執行的PHP相同路徑,則需要指定完整的路徑。除註解外不論在PHP程式中的任何位置皆會執行即使是在條件為假的判斷式中,若檔案不存在則發生Fatal error: 錯誤,程式並中止執行後續的程式碼.
incude()大多解釋為:可以引入在其它的檔案中的PHP程式碼,引入後將該位置中插入引入檔的資料,資料可以是變數、HTML語法、或是任何回傳的結果,若引入檔不在與當前執行的PHP相同路徑,則需要指定完整的路徑。incude()可以依條件進行載入與否,若檔案不存在則發生Warning: 警告訊息,程式會繼續執行後續的程式碼.
總結:
二者間的差異有二個,
- 一是若引入檔不存在require()會停止執行後續的程式碼,而include()會繼續執行後續的程式碼。
- 二是include()可以視條件是否引入,而require()不論任何條件皆會引入。
由於好奇,所以自己做了幾個測試,得到的結果且與書上寫的不同
require()也可視條件決定是否載入,並非一般所說的不論位置為何皆會引入。
實際上test2.php及test3.php並未被引入。
所以include()與require()只有當檔案不存在時後續是否繼續執行的差異。
Posted in 未分類 by Dreamer with 52 comments.
發佈留言