之前在寫程序的時候想過這個問題,今天恰好看到關於此方面的問題,因此就整理,總結下來! php
這兩種結構除了在如何處理失敗以外徹底同樣。include() 產生一個警告而 require() 則致使一個致命錯誤。換句話說,若是你想在遇到丟失文件時中止處理頁面就用 require()。include() 就不是這樣,腳本會繼續運行 html
include 包括 沒有也能夠 ui
require 須要 必定要有 spa
include 出錯時返回一個錯誤但繼續執行 htm
require 出錯時產生一個致命錯誤,結束運行 get
--------------------------------------------------------------------------------- io
這裏特別要注意的是:
使用include()文件不存在時,腳本繼續執行,這種狀況只出如今PHP 4.3.5以前,這一點,每每被人忽視。
推薦使用require_once()和include_once(),能夠檢測文件是否有重複包含。 function
-------------------------------------------------------------------------------------- require
還有一個區別,這樣來描述:
只要有require,總會包含指定的文件;
若是程序沒有執行到include,指定的文件不會被包含,好比if條件不成立,在if語句裏用include 循環
(如下是這一區別的詳細介紹)
注: 在 PHP 4.0.2 以前適用如下規則:require() 老是會嘗試讀取目標文件,即便它所在的行根本就不會執行。條件語句不會影響 require()。不過若是 require() 所在的行沒有執行,則目標文件中的代碼也不會執行。一樣,循環結構也不影響 require() 的行爲。儘管目標文件中包含的代碼仍然是循環的主體,但 require() 自己只會運行一次。