* include() 與 include_once()
* require() 與 require_once()
1.include() 函數會將指定的檔案讀入並且執行裡面的程式。
例如:include('/home/me/myfile');
被匯入的檔案中的程式碼都會被執行,而且這些程式在執行的時候會擁有和源檔案中呼叫到 include() 函數的位置相同的變數範圍(variable scope)。你可以匯入同一個伺服器中的靜態檔案,甚至可以通過合并使用 include() 與 fopen() 函數來匯入其它伺服器上面的檔案。
2.include_once()函數的作用和 include() 是幾乎相同的
唯一的差別在於 include_once() 函數會先檢查要匯入的檔案是不是已經在該程式中的其它地方被匯入過了,如果有的話就不會再次重複匯入該檔案(這項功能有時候是很重要的,比方說要匯入的檔案裡面宣告了一些你自行定義好的函數,那麼如果在同一個程式重複匯入這個檔案,在第二次匯入的時候便會發生錯誤訊息,因為 PHP 不允許相同名稱的函數被重複宣告第二次)。
3.require()函數會將目標檔案的內容讀入,並且把自己本身代換成這些讀入的內容。
這個讀入並且代換的動作是在 PHP 引擎編譯你的程式碼的時候發生的,而不是發生在 PHP 引擎開始執行編譯好的程式碼的時候(PHP 3.0 引擎的工作方式是編譯一行執行一行,但是到了 PHP 4.0 就有所改變了,PHP 4.0 是先把整個程式碼全部編譯完成後,再將這些編譯好的程式碼一次執行完畢,在編譯的過程中不會執行任何程式碼)。require() 通常來匯入靜態內容,而 include() 則適合用來匯入動態程式碼。
4.如同 include_once()函數,require_once() 函數會先檢查目標檔案的內容是不是在之前就已經匯入過了,如果是的話,便不會再次重複匯入同樣的內容。
我個人習慣使用 require() 函數來匯入著作權宣告(copyrights),靜態文字或其它本身不含有變數,或者本身需要倚賴其它執行過的程式才能正確執行的程式碼
php中include和require有什麼區別
平常是沒區別的.
當要載入的檔案不存在時候, include會給一個warning警告, 然後繼續運行. 而require則會給一個fatal error, 直接結束指令碼
require()所包含的檔案中不能包含控制結構,而且不能使用return這樣的語句。在require()所包含的檔案中使用return語句會產生處理錯誤。
不象include()語句,require()語句會無條件地讀取它所包含的檔案的內容,而不管這些語句是否執行。所以如果你想按照不同的條件包含不同的檔案,就必須使用include()語句。當然,如果require()所在位置的語句不被執行,require()所包含的檔案中的語句也不會被執行。