require()語句的性能與include()相類似,都是包括并運作指定檔案。
##include()和require()的差別:
####加載次數不一樣
:在執行檔案時每次都要進行讀取和評估;
include()
:檔案隻處理一次(實際上,檔案内容替換
require()
語句)
require()
分析:
- 如果可能執行多次的代碼,則使用require()效率比較高。
- 若每次執行代碼時相讀取不同的檔案或者有通過一組檔案疊代循環,就使用include()
####加載方式不一樣
是預加載機制(程式執行之前進行加載),位置一般放在腳本最前面,一開始就引入所有可能用到的檔案;
require()
是即用即加載(執行到它所在的那行代碼時才加載進來)。
include()
分析:
-
适合條件的引用include()
例:
$file = "./app.txt";
if(file_exists($file)){
include $file;//隻有在檔案存在時才加載
}
if(file_exists($file)){
require $file;//無論檔案存不存在都會加載
}
####報錯類型不一樣
引入檔案時,如果遇到錯誤會提示警告性錯誤(
include()
)并繼續執行;
E_WARNING
引入檔案遇到錯誤時也提示緻命編譯性錯誤(
require()
)且會終止程式的運作。
E_COMPILE_ERROR
分析:
- PHP系統在加載PHP程式時有一個僞編譯過程,可使程式運作速度加快。
- incluce的文檔為解釋執行,include的檔案中出錯了,主程式繼續往下執行
- reuire檔案會把require語句替換成檔案内容,使它成為主程式的一部分,require的檔案出錯了,主程式也就停了
##include 和 include_once,require和require_once 的差別:
- include()、require()執行即包含檔案,不會對引入的檔案進行檢查(這裡會消耗一些資源,降低執行的效率),可能會出現重複包含的情況;
- 而include_once()、require_once()在包含時會先檢查檔案是否已經包含過了,如果已包含,則不再包含檔案,這樣的引入檔案方式即可以節省資源,又可避免重複定義的錯誤。