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