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