PHP中include和require的區別

2021-08-03 14:13:47 字數 1643 閱讀 2198

require()語句的效能與include()相類似,都是包括執行指定檔案。不同之處在於:對include()語句來說,在執行檔案時每次都要進行讀取和評估;而對於require()來說,檔案只處理一次(實際上就是引用的檔案裡面的所有**被放入了require語句的這個位置)。這就意味著如果可能執行多次的**,則使用require()效率比較高。另外一方面,如果每次執行**時是讀取不同的檔案,或者有通過一組檔案迭代的迴圈,就使用include()語句。

require的使用方法如:require(「myfile.php」),這個語句通常放在php指令碼程式的最前面。php程式在執行前,就會先讀入require()語句所引入的檔案,使它變成當前php檔案的一部分。include使用方法和require一樣如:include(「myfile.php」),而這個語句一般是放在流程控制的處理區段中。在**執行到include()語句時,才將它包含的檔案讀取進來。這種方式,可以把程式執行時的流程簡單化。

php系統在載入php程式時有乙個偽編譯過程,可使程式執行速度加快。但incluce的文件仍為解釋執行。include的檔案中出錯了,報乙個錯誤但主程式繼續往下執行,require的檔案出錯了,主程式也停了,所以包含的檔案出錯對系統影響不大的話(如介面檔案)就用include,否則用require。

require()和include()語句是語言結構,不是真正的函式,可以像php中其他的語言結構一樣,例如echo()可以使用echo(「ab」)形式,也可以使用echo 「abc」形式輸出字串abc。require()和include()語句也可以不加圓括號而直接加引數。

include_once()和require_once()語句也是在指令碼執行期間包括執行指定檔案。此行為和include()語句及require()類似,使用方法也一樣。唯一區別是如果該檔案中的**已經被包括了,則不會再次包括。require_once語句如果在同乙個頁面包含了兩個相同的檔案,那麼只有第一次包含的檔案執行,第二次包含的檔案不會被執行。這兩個語句應該用於在指令碼執行期間,同乙個檔案有可能被包括超過一次的情況下,確保它只被包括一次,以避免函式重定義以及變數重新賦值等問題。

include()與require()的功能相同,用法上卻有一些不同,include()是有條件包含函式,而require()則是無條件包含函式。

例如:

if($test)
上面**只有$test為真時才包含test.php檔案。

if($test)
而require無論$test為真還是假都會包含test.php。

include()執行時需要引用的檔案每次都要進行讀取和評估,require()執行時需要引用的檔案只處理一次(實際上執行時需要引用的檔案內容替換了require()語句)可以看出若有包含這些指令之一的**和可能執行多次的**,則使用require()效率比較高,若每次執行**時相讀取不同的檔案或者有通過一組檔案疊代的迴圈,就使用include(),可以給想要包括的檔名設定變數,當引數為 include()時使用這個變數。

php中include和require的區別

引用檔案的方法有兩種 require 及 include。兩種方式提供不同的使用彈性。require 的使用方法如require myrequirefile.php 這個函式通常放在 php 程式的最前面,php 程式在執行前,就會先讀入 require 所指定引入的檔案,使它變成 php 程式網頁...

PHP中include和require的區別

php中include和require的區別 1 載入失敗的處理方式不同 如果檔案不存在,include 會產生乙個waring,但指令碼會繼續執行 僅限於php4.3.5之前 但是,require 會報出乙個fatal error,指令碼停止執行。使用require once 和include o...

PHP中include和require區別之我見

昨天去面試乙個php開發,看到筆試試卷上有這麼一道題目 include和require有什麼區別?這個題目可以稱得上php開發面試中的必考題目,網上也有各種答案和解釋。但是我當時卻真的想不起來了。現在回頭想這個問題,突然有了新的認識 php作為優秀的開源程式,她所提供的函式從名稱上必定會盡可能地表達...