php提供了兩種包含外部文件的方法:include()和require()。include()語句是一個常規的php函數;而require() 是一種特殊的語言結構,它的使用受到一些限制。對這二者來講,無論使用哪一個語句來包含文件,解析程序都將退出php模式並在目標文件的開頭進入HTML模 式。這意味着目標文件中的全部應該做爲php腳本執行的代碼都必須被包含在有效的php起始標記和終止標記中。 在同一腳本中,每次出現include()函數,它都會被執行,它甚至有可能被包含在循環或條件語句中。這意味着經過使用條件判斷是否包含一個文件,它還可使用循環結構包含一組文件。include()語句對文件的處理將終止。 require()語句與include()語句是不一樣的,它不能受任何控制結構的控制。這說明使用require()不能有條件的包含文件。若是這個 語句出如今循環中,或者位於取值爲假的條件語句中,它也都會執行,而且只執行一次。另外一個區別是,使用require()語句包含的文件不能有返回值。試 圖在require()語句中返回值將會產生一個解析錯誤。php
=============================================================================面試
include()和require()的區別 這相信是PHP中最基本的問題了,也是不少公司面試時必考的題呵呵。 給你們複習一下: require() :若是文件不存在,會報出一個fatal error.腳本中止執行 include() : 若是文件不存在,會給出一個 warning,但腳本會繼續執行 這裏特別要注意的是: 使用include()文件不存在時,腳本繼續執行,這種狀況只出如今PHP 4.3.5以前,這一點,每每被人忽視。 推薦使用require_once()和include_once(),能夠檢測文件是否有重複包含。函數
=============================================================================性能
php的require()性能與include()相相似。不一樣之處在於,對include()來講,在 include()執行時文件每次都要進行讀取和評估;而對於require()來講,文件只處理一次(實際上,文件內容替換了require()語 句)。這就意味着若是有包含這些指令之一的代碼和可能執行屢次的代碼,則使用require()效率比較高。另外一方面,若是每次執行代碼時相讀取不一樣的文 件,或者有經過一組文件疊代的循環,就使用include(),由於能夠給想要包括的文件名設置一個變量,當參數爲include()時使用這個變量。ui
===============================================================================效率
在PHP中使用頭文件,會涉及兩個函數:include()和require()。這兩個函數差異很小,卻很重要,因此咱們要認真研究一下。 require()函數工做方式與XSSI相相似;無論在程序的哪一個部分使用了這個函數,只有程序一開始運行,頭文件的內容就被做爲程序自己的一部分來處 理。所以,若是您在一個條件斷定語句中使用了require()函數,那麼即便這個條件即便不爲真,頭文件也會被包含進來。 而include()函數只是在執行到這一條語句時纔會把頭文件內容包含進來。若是程序沒運行到這裏,那PHP是不會管它的。這就意味着,您在條件斷定部分使用include時,它會徹底按照您但願的那樣工做。 還有,若是您用了require()函數,而您指定的頭文件並不存在,那麼程序將會中止運行併產生錯誤。若是您用了include(),程序會產生一個警告信息,可是會繼續運行。require