解釋一下這兩個(gè)函數(shù)的區(qū)別:include_once、require_once
include()產(chǎn)生一個(gè)警告而require()則導(dǎo)致一個(gè)致命錯(cuò)誤。換句話說(shuō),如果想在遇到丟失文件時(shí)停止處理頁(yè)面就用require()。include()就不是這樣,腳本會(huì)繼續(xù)運(yùn)行。同時(shí)也要確認(rèn)設(shè)置了合適的include_path。注意在 PHP 4.3.5 之前,包含文件中的語(yǔ)法錯(cuò)誤不會(huì)導(dǎo)致程序停止,但從此版本之后會(huì)。
include_once
include_once()語(yǔ)句在腳本執(zhí)行期間包含并運(yùn)行指定文件。此行為和include()語(yǔ)句類似,唯一區(qū)別是如果該文件中的代碼已經(jīng)被包含了,則不會(huì)再次包含。如同此語(yǔ)句名字暗示的那樣,只會(huì)包含一次。
include_once()應(yīng)該用于在腳本執(zhí)行期間同一個(gè)文件有可能被包含超過(guò)一次的情況下,想確保它只被包含一次以避免函數(shù)重定義,變量重新賦值等問(wèn)題。
require_once
require_once()語(yǔ)句在腳本執(zhí)行期間包含并運(yùn)行指定文件。此行為和require()語(yǔ)句類似,唯一區(qū)別是如果該文件中的代碼已經(jīng)被包含了,則不會(huì)再次包含。有關(guān)此語(yǔ)句怎樣工作參見(jiàn)require()的文檔。
require_once()應(yīng)該用于在腳本執(zhí)行期間同一個(gè)文件有可能被包含超過(guò)一次的情況下,想確保它只被包含一次以避免函數(shù)重定義,變量重新賦值等問(wèn)題。
個(gè)人使用經(jīng)驗(yàn):
1.路徑問(wèn)題。
特別是 嵌套包含的時(shí)候,一定的注意包含文件的路徑。
比如 A文件包含了B文件,B文件包含了C文件,A,B,C文件都不在同一個(gè)文件夾下,這個(gè)時(shí)候往往很容易出錯(cuò)誤。
解決方案:定義一個(gè)基路徑sitebase
2.效率問(wèn)題
include_once,require_once,與include,require比較,效率要低一點(diǎn),因?yàn)樗麄冎辽俚孟扰袛嘁幌逻@個(gè)文件是否存在。
其它區(qū)別:
inclue的文件中如果有錯(cuò)誤會(huì)斷續(xù)執(zhí)行當(dāng)前腳本
require的文件中如果有錯(cuò)誤就會(huì)停止招待當(dāng)前腳本
各自加once就是只能包含一次~~~
新聞熱點(diǎn)
疑難解答