PHP中include()與require()的區別說明

require 的使用方法如 require("MyRequireFile.php"); 。這個函數一般放在 PHP 程序的最前面,PHP 程序在執行前,就會先讀入 require 所指定引入的文件,使它變成 PHP 程序網頁的一部份。經常使用的函數,亦能夠這個方法將它引入網頁中。
php

include 使用方法如 include("MyIncludeFile.php"); 。這個函數通常是放在流程控制的處理部分中。PHP 程序網頁在讀到 include 的文件時,纔將它讀進來。這種方式,能夠把程序執行時的流程簡單化。服務器


他們兩個的用途是徹底同樣的,不必定非得哪一個放在最前面哪一個放在中間。他們最根本的區別在於錯誤處理的方式不同。 函數

require一個文件存在錯誤的話,那麼程序就會中斷執行了,並顯示致命錯誤 ui

include一個文件存在錯誤的話,那麼程序不會中端,而是繼續執行,並顯示一個警告錯誤。 spa


如下爲補充:編譯

1. include有返回值,而require沒有。 require

2. include()包括並運行指定文件 在處理失敗時include() 產生一個警告,被導入的程序代碼都會被執行,並且這些程序在執行的時候會擁有和源文件中呼叫到include()語句的位置相同的變量範圍。你能夠導入同一個服務器中的靜態頁面。 變量

3. include_once()的做用和include()是幾乎相同的 程序

惟一的差異在於include_once()會先檢查要導入的檔案是否是已經在該程序中的其它地方被導入過了,若是有的話就不會再次重複導入(這項功能有時候是很重要的,比方說要導入的裏面宣告了一些你自行定義好的函數,那麼若是在同一個程序重複導入這個文件,在第二次導入的時候便會發生錯誤訊息,由於PHP不容許相同名稱的函數被重複宣告第二次)。 方法

4. require()會將目標文件的內容讀入,而且把本身自己代換成這些讀入的內容 在處理失敗時require() 則致使一個致命錯。 

這個讀入而且代換的動做是在PHP引擎編譯你的程序代碼的時候發生的,而不是發生在PHP引擎開始執行編譯好的程序代碼的時候(PHP 3.0引擎的工做方式是編譯一行執行一行,可是到了PHP 4.0之後就有所改變了,PHP 4.0是先把整個程序代碼所有編譯完成後,再將這些編譯好的程序代碼一次執行完畢,在編譯的過程當中不會執行任何程序代碼)。require()一般來導入靜態的內容,而include()則適合用導入動態的程序代碼。 

5. 如同include_once(),require_once()會先檢查目標文件的內容是否是在以前就已經導入過了,若是是的話,便不會再次重複導入一樣的內容。 

5. require是無條件包含也就是若是一個流程里加入require,不管條件成立與否都會先執行require。 

7. require一般放在PHP程序的最前面,PHP程序在執行前,就會先讀入require所指定引入的文件,使它變成PHP程序網頁的一部份。經常使用的函數,亦能夠這個方法將它引入網頁中。 

8. include通常是放在流程控制的處理部分中PHP程序網頁在讀到include的文件時,纔將它讀進來。這種方式能夠把程序執行時的流程簡單化。 

相關文章
相關標籤/搜索