一、作用
include()與require()語(yǔ)句的作用是包含并運(yùn)行指定文件。
二、include()與require()區(qū)別
這兩種結(jié)構(gòu)除了在如何處理失敗之外完全一樣。include() 產(chǎn)生一個(gè)警告,腳本會(huì)繼續(xù)運(yùn)行。require() 則導(dǎo)致一個(gè)致命錯(cuò)誤,腳本會(huì)停止運(yùn)行。
換句話(huà)說(shuō),如果想在遇到丟失文件或遇到錯(cuò)誤時(shí)停止處理頁(yè)面就用 require()。如果想在遇到錯(cuò)誤時(shí)繼續(xù)處理頁(yè)面就用 include()。
注意:使用include()時(shí),在 PHP 4.3.5 之前,包含文件中的語(yǔ)法錯(cuò)誤不會(huì)導(dǎo)致程序停止,但從此版本之后會(huì)。也就是說(shuō)在PHP 4.3.5 之后,使用include()文件不存在時(shí),腳本不會(huì)繼續(xù)執(zhí)行。
三、include_once()、require_once()
include_once() 語(yǔ)句在腳本執(zhí)行期間包含并運(yùn)行指定文件。此行為和 include() 語(yǔ)句類(lèi)似,唯一區(qū)別是include_once()會(huì)先判斷一下這個(gè)文件在之前是否已經(jīng)被包含過(guò),如已經(jīng)包含,則忽略本次包含。include_once() 應(yīng)該用于嵌套包含的情況下,想確保它只被包含一次,以避免函數(shù)重定義、變量重新賦值等問(wèn)題。
(require_once()同理。)
四、需要注意的問(wèn)題
1、路徑問(wèn)題
特別是嵌套包含的時(shí)候,一定得注意包含文件的路徑。
比如 A文件包含了B文件,B文件包含了C文件,A,B,C文件都不在同一個(gè)文件夾下,這個(gè)時(shí)候往往很容易出錯(cuò)誤。
解決方案:使用絕對(duì)路徑,即可以使用 dirname(__FILE__) 語(yǔ)句,這句的意思是獲得當(dāng)前腳本的絕對(duì)路徑。如:require_once(dirname(__FILE__).'/config.php');
2、效率問(wèn)題
include_once(),require_once(),與include(),require()比較,效率要低一些,因?yàn)樗麄冎辽俚孟扰袛嘁幌逻@個(gè)文件是否已包含。這一問(wèn)題在PHP5版本有很大改進(jìn),不過(guò)效率還是有差別。
更多信息請(qǐng)查看IT技術(shù)專(zhuān)欄