**1.require()語句 **require()語句用于指定的文件代替語句本身,就象C語言中的include()語句一樣。如果php配置文件php.ini中的URL fopen wrappers 是打開的(默認情況下是打開的),就可以使用URL來指定文件的位置從而實現遠程文件的調用。 有一點就是使用require()和include()語句時要特別的注意。那就是在被包含的文件中,處理器是按照html模式來解釋其中的內容的,處理完被包含的內容后又恢復到php模式。所以如果需要在被包含文件中使用php語法,就要使用正確的php開始和結束標記來把這些語句包含進去。 require()和include()知識php中的一種語言特性,而不是函數。它們和函數有許多不同的地方。 比如:require()所包含的文件中不能包含控制結構,而且不能使用return這樣的語句。在require()所包含的文件中使用return語句會產生處理錯誤。 不象include()語句,require()語句會無條件地讀取它所包含的文件的內容,而不管這些語句是否執行。所以如果你想按照不同的條件包含不同的文件,就必須使用include()語句。當然,如果require()所在位置的語句不被執行,require()所包含的文件中的語句也不會被執行。 require()不能在循環體中根據條件的不同而包含不同的文件。require()語句只會在第一次執行時調用它所包含的文件中的內容替換本身這條語句,當再次被執行時只能執行第一次所包含的語句。但是include()語句可以在循環體中來包含不同的文件。 require()語句中的變量繼承require()語句所在位置的變量作用域。所有在require()語句的位置可以訪問的變量,在require()語句所包含的文件中都可以訪問。如果require()語句位于一個函數內部,那么被包含文件內的語句都相當于定義在函數內部。 require()語句在PHP程序執行前就會將使用require引用的文件讀入,因此require通常放到程序的開始處。因此要特別注意一點,require語句有一點強,不管程序是否真的需要引用的文件,只要你使用require語句,它都會把他們包含進來!即使你是在條件控制語句中使用這個函數進行包含,那怕是那個條件不為真,引用文件也會被包含進來!形成了僵尸,在運行過程中這些僵尸是不起任何可見作用的,但是很明顯它會加重負擔,所以這一點要特別注意!如果使用require語句發生了包含錯誤,那么程序將輸出出錯信息并停止運行!! 如果require()語句通過聲明文件的URL來包含遠程文件,而且遠程服務器按照php代碼來解釋該文件的話,本地php文件中所包含的內容是在遠程服務器上處理以后的結果。
**2.include()語句 **include()語句和require()語句有許多相同的地方。凡是在上邊require()語句中沒有明確說明不能適用于include()的部分外,require()語句的功能完全適用于include()語句。下邊介紹require()語句所沒有的include()語句的功能和特點。 include語句只有在被執行時才會讀入要包含的文件。在錯誤處理方便,使用include語句,如果發生包含錯誤,程序將跳過include語句,雖然會顯示錯誤信息但是程序還是會繼續執行! php處理器會在每次遇到include()語句時,對它進行重新處理,所以可以根據不同情況的,在條件控制語句和循環語句中使用include()來包含不同的文件。
**3.require_once()和include_once()語句 **require_once()和include_once()語句分別對應于require()和include()語句。require_once()和include_once()語句主要用于需要包含多個文件時,可以有效地避免把同一段代碼包含進去而出現函數或變量重復定義的錯誤。
require_once語句有一個引用鏈,它可以保證文件加入你的程序僅僅只有一次,而且會避開變量值和函數名之間的沖突。 和require_once語句一樣,include_once語句把include的功能擴展了。在程序執行期間,將指定的文件包含進來,如果從文件引用進來的程序先前已經包含過的時候,include_once()就不會把它再包含進來。也就是僅僅可以引用同一個文件一次! include_once() 語句在腳本執行期間包含并運行指定文件。此行為和 include() 語句類似,唯一區別是如果該文件中的代碼已經被包含了,則不會再次包含。如同此語句名字暗示的那樣,只會包含一次。 include_once() 應該用于在腳本執行期間同一個文件有可能被包含超過一次的情況下,想確保它只被包含一次以避免函數重定義,變量重新賦值等問題。 使用 require_once() 和 include_once() 的更多例子見最新的 PHP 源程序發行包中的 PEAR 代碼。 返回值和 include() 相同。如果文件已被包含,本函數返回 TRUE。