來(lái)聊聊,spl_autoload_register的前世今生

      網(wǎng)友投稿 739 2025-04-03

      本文將會(huì)帶你了解屬于spl_autoload_register的故事。

      前言

      咔咔整理了一個(gè)路線圖,著手打造一份面試寶典,準(zhǔn)備按照這樣的路線圖進(jìn)行編寫文章,后期發(fā)現(xiàn)沒(méi)有補(bǔ)充到的知識(shí)點(diǎn)在進(jìn)行添加。也期待各位伙伴一起來(lái)幫助補(bǔ)充一下。評(píng)論區(qū)見(jiàn)哦!

      一、spl_autoload_register前世今生

      在剛剛接觸PHP沒(méi)有使用框架之前相信大多數(shù)伙伴都用過(guò)include和require,當(dāng)然還有include_once和require_once。

      這倆個(gè)區(qū)別還記得嗎?

      include引入報(bào)錯(cuò)時(shí)只會(huì)有警告,而require則會(huì)直接讓腳本停止。

      在PHP5.3引入了命名空間的概念,為此在PHP文檔中記載著11年前一位貢獻(xiàn)者是這樣說(shuō)的,I made this benchmark to ensure that I don't recommend something that could be called "nice, but slow" later。

      翻譯過(guò)來(lái)是“我做的這個(gè)測(cè)試,是為了確保我以后不推薦可以稱之為不錯(cuò),但是很慢的東西”。

      做的這個(gè)測(cè)試就是定義了10個(gè)文件夾,每個(gè)文件夾有10個(gè)子文件夾并且每個(gè)子文件夾里都有10個(gè)類,然后使用了autoload和spl_autoload對(duì)比之后,平均執(zhí)行時(shí)間多50ms。

      那么這個(gè)東西指的就是_autoload(),終將這個(gè)方法在PHP7.2被廢棄。

      那么除了效率問(wèn)題之外還有一個(gè)原因最終廢棄了_autoload這個(gè)方法。

      spl_autoload_register可以根據(jù)自己需求寫多個(gè),加載順序是按照隊(duì)列方式,先進(jìn)先出。

      autoload是全局函數(shù),所以只能定義一次,多次定義會(huì)報(bào)錯(cuò)。如果一個(gè)項(xiàng)目使用多個(gè)框架實(shí)現(xiàn),就會(huì)引發(fā)這樣的問(wèn)題。

      二、spl_autoload_register簡(jiǎn)單使用

      這個(gè)函數(shù)只有三個(gè)參數(shù),第一個(gè)參數(shù)為自動(dòng)加載的函數(shù),第二參數(shù)為自動(dòng)注冊(cè)的函數(shù)失敗時(shí)是否拋出異常,第三個(gè)參數(shù)為添加函數(shù)到隊(duì)列之首,而不是隊(duì)列尾部。

      以上都是根據(jù)true定義的。

      定義倆個(gè)文件say和user

      say文件聲明一個(gè)類Say并且設(shè)置一個(gè)方法hello

      這時(shí)來(lái)到user文件,我們需要先定義一個(gè)autoload方法,然后使用spl_autoload_register進(jìn)行注冊(cè)

      打印出來(lái)的數(shù)據(jù)結(jié)果

      堅(jiān)持學(xué)習(xí)、堅(jiān)持寫博、堅(jiān)持分享是咔咔從業(yè)以來(lái)一直所秉持的信念。希望在偌大互聯(lián)網(wǎng)中咔咔的文章能帶給你一絲絲幫助。

      來(lái)聊聊,spl_autoload_register的前世今生

      PHP

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:生產(chǎn)制造執(zhí)行系統(tǒng)MES服務(wù)方案,提升生產(chǎn)效率的關(guān)鍵
      下一篇:部分截圖?怎樣操作(怎么進(jìn)行部分截圖)
      相關(guān)文章
      国产精品亚洲专一区二区三区| 亚洲xxxxxx| 亚洲国产成人久久综合| 亚洲制服丝袜一区二区三区| 亚洲高清中文字幕| 亚洲黄网站wwwwww| 亚洲白嫩在线观看| 亚洲毛片基地日韩毛片基地| 亚洲综合一区二区精品久久| 亚洲女人初试黑人巨高清| 亚洲国产精品成人综合久久久| 亚洲国产精品综合一区在线| 亚洲国产午夜电影在线入口| 亚洲伊人久久大香线蕉在观| 99999久久久久久亚洲| 亚洲已满18点击进入在线观看| 国产婷婷综合丁香亚洲欧洲| 亚洲欧洲日韩极速播放| 久久亚洲国产最新网站| 亚洲国产精品无码久久九九大片 | 亚洲精品无码成人AAA片| 亚洲欧洲日产国码av系列天堂| 亚洲另类激情综合偷自拍图| 亚洲AV福利天堂一区二区三| 亚洲国产精品久久久久婷婷老年| 久久精品蜜芽亚洲国产AV| 亚洲第一香蕉视频| 一区二区亚洲精品精华液| 亚洲国产精品成人午夜在线观看| 国产亚洲一卡2卡3卡4卡新区| 亚洲av麻豆aⅴ无码电影| 久久久久亚洲精品天堂久久久久久 | 亚洲一卡2卡三卡4卡有限公司| 78成人精品电影在线播放日韩精品电影一区亚洲| 亚洲免费在线视频| 亚洲1234区乱码| 亚洲av日韩综合一区久热| 国产成人精品久久亚洲高清不卡 | 国产亚洲精品国看不卡| 久久久久亚洲AV成人无码网站 | 亚洲AV无码之国产精品|