1. 程式人生 > >PHP學習筆記 - include、require、include_once 和 require_once的區別

PHP學習筆記 - include、require、include_once 和 require_once的區別

重要 one 是的 進行 允許 pan 4.0 fop 其它

1.include:會將指定的檔案讀入並且執行裏面的程序。
被導入的檔案中的程序代碼都會被執行,而且這些程序在執行的時候會擁有和源文件中呼叫到 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.require_once:如同 include_once()函數,require_once() 函數會先檢查目標檔案的內容是不是在之前就已經導入過了,如果是的話,便不會再次重復導入同樣的內容。

Tips:1、通常使用 require() 函數來導入版權宣告(copyrights),靜態文字或其它本身不含有變量,或者本身需要倚賴其它執行過的程序才能正確執行的程序代碼。

2、在程序的開頭通常使用 include() 函數來導入一些函式庫或者類似的程序代碼。

3、善用include()和 require()來將網站裏面經常需要變動的共享內容做合理的分割,在更新網站內容的時候將會容易進行得多。

4、require() 和 include() 除了怎樣處理失敗之外在各方面都完全一樣。include() 產生一個警告而 require() 則導致一個致命錯誤。換句話說,如果想在丟失文件時停止處理頁面,那就別猶豫了,用 require() 吧。include() 就不是這樣,腳本會繼續運行。

PHP學習筆記 - include、require、include_once 和 require_once的區別