本篇文章給大家介紹一下php中require、require_once、include、include_once類庫(kù)重復(fù)引入效率的問(wèn)題。有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)大家有所幫助。
include() 與require() 的功能相同
唯一不同:require()不管是否被執(zhí)行,只要存在,php在執(zhí)行前都會(huì)預(yù)引入,include()則是執(zhí)行到該語(yǔ)句時(shí)才進(jìn)行引入
include_once() 與 require_once() 都是檢測(cè)文件是否被引入,被引入則不會(huì)引入
唯一不同: require_once()為無(wú)條件包含,顧名思義也就是引入后如遇到錯(cuò)誤則停止,include_once()則忽略然后繼續(xù)執(zhí)行
關(guān)于效率問(wèn)題,我要說(shuō)明,請(qǐng)自覺(jué)少用include_once()、 require_once()
該函數(shù)原理:引入文件->對(duì)當(dāng)前腳本語(yǔ)句進(jìn)行比較是否包含過(guò)->決定是否引入,效率可想而知,你想你要是整個(gè)項(xiàng)目上百個(gè)類庫(kù),一次執(zhí)行中比較數(shù)十次是怎樣的一個(gè)恐怖的后果
在這里寫一下個(gè)人的多類庫(kù)中防止重復(fù)引入文件的解決方式:
-
在調(diào)用腳本使用require();
-
類庫(kù)中防止重復(fù)使用 class_exists(‘類名’) or include(‘類庫(kù)絕對(duì)路徑’);
解釋:調(diào)用腳本的文件使用一次require(),因?yàn)檎{(diào)用腳本為程序通用入口,此處引入公共類庫(kù)很少會(huì)造成公共類庫(kù)沒(méi)有被使用,在類庫(kù)中使用以上語(yǔ)句,能防止當(dāng)前腳本重復(fù)引入公共類庫(kù),并且只要通過(guò)判斷條件才會(huì)執(zhí)行引入,不會(huì)重復(fù)預(yù)引入,提高程序執(zhí)行效率
推薦學(xué)習(xí):php視頻教程