2013年2月28日 星期四

PHP: include, require, include_once, require_once

引入的檔案是否存在
require: 引入檔必須存在。如果不存在,程式會發出 Fatal error 的錯誤訊息,並且終止執行。
include: 引入檔可以不存在。如果不存在,程式繼續執行,不影響。

使用時機
「require( ) 適合用來引入靜態的內容(如版權宣告),而 include( ) 則適合用來引入動態的程式碼(程式內容會依其他程式碼而變動)。」

引入檔的開頭標籤
「在使用 require 或 include 引用某個檔案時,PHP 是以 HTML 格式讀入。若您要引用的檔案中含有 PHP 程式碼,要用 PHP 的識別標籤 <?php ?> 將程式段落包起來。」

路徑關係
不管是 require 或 include ,路徑關係必須參照把別支檔案引用進來的主檔案,而不是被引用的檔案。

條件判斷
如果需要經過條件判斷之後才能決定是否引用檔案,應使用 include。 例如:
if ( $browser == "MSIE" ) {
   include ("menu_IE.inc");
}
else {
   include ("menu_Other.inc");
}
使用 include 的話,如果條件不成立,程式就不會把檔案引進來。但如果使用 require,無論條件是否成立,程式還是會先把檔案引入,然後當條件判斷不成立,再將其略過。

 include_once 與 require_once
程式在執行時,會先判斷之前執行的時候有沒有其它頁面引用過。如果已引用過,本次即不再重新引入,會使用上次引入的內容。

延伸閱讀
談php的include和require (php5網管實驗室)
http://tino.loxa.edu.tw/php/kojiro/inre.html
http://cct.me.ntut.edu.tw/ccteducation/chchting/aiahtm/computer/ebook/php_tw.pdf

沒有留言:

張貼留言