PHP include()和require()是兩種包含外部文件的方法,二者的區(qū)別如下:
1:加載失敗的處理方式不同:
include()會產(chǎn)生一個警告,而require()則導(dǎo)致一個致命的錯誤(出現(xiàn)錯誤,腳本停止執(zhí)行)
require() :如果文件不存在,會報出一個fatal error.腳本停止執(zhí)行
include() : 如果文件不存在,會給出一個 warning,但腳本會繼續(xù)執(zhí)行
這里特別要注意的是:使用include()文件不存在時,腳本繼續(xù)執(zhí)行,這種情況只出現(xiàn)在PHP 4.3.5之前
推薦使用require_once()和include_once(),可以檢測文件是否有重復(fù)包含
2、include()是有條件包含函數(shù),而 require()則是無條件包含函數(shù)。
3、文件引用方式不同:
include有返回值,而require沒有
include()執(zhí)行時需要引用的文件每次都要進行讀取和評估,
require()執(zhí)行時需要引用的文件只處理一次(實際上執(zhí)行時需要引用的文件內(nèi)容替換了require()語句)
可以看出若有包含這些指令之一的代碼和可能執(zhí)行多次的代碼,則使用require()效率比較高,
若每次執(zhí)行代碼時相讀取不同的文件或者有通過一組文件疊代的循環(huán),就使用include(),
require通常使用方法,這個函數(shù)通常放在 PHP 程序的最前面,PHP 程序在執(zhí)行前,就會先讀入 require 所指定引入的文件,使它變成 PHP 程序網(wǎng)頁的一部份。常用的函數(shù),亦可以這個方法將它引入網(wǎng)頁中。
include通常使用方法,這個函數(shù)一般是放在流程控制的處理部分中。PHP 程序網(wǎng)頁在讀到 include 的文件時,才將它讀進來。這種方式,可以把程序執(zhí)行時的流程簡單化
另外關(guān)于include和require后面是否加括號的問題,
理論上來說:include和require后面加不加括號對執(zhí)行結(jié)果沒有區(qū)別,但是加上括號效率較低,所以后面能不加括號就不加括號。