php自動載入為什麼autoload被拋棄了

2021-10-19 17:40:14 字數 707 閱讀 6663

檢視了許多資料

1 如果100個檔案 都要用 都要乙個乙個include進來

所以有了這種autoload載入

但是看到網上說 這種autoload 有缺點就是只能載入一次 這載入一次怎麼理解呢?

如果我在autoload對檔案名字作判斷 然後include不同目錄的php檔案不也可以嗎?

我主要想知道 這個autoload 如何 過渡到spl_autoload 還有 只能載入一次這個怎麼說?

spl_autoload_register和__autoload都是php自動載入的兩種方式。自從spl_autoload_register出現後,已經逐漸替代了__autoload.雖然二者實現的最終功能一樣,但是不同的是spl_autoload_register可以註冊多種載入機制。而__autoload只可以定義一次。

比如,現在需要載入目錄a和目錄b內的類,a目錄中定義所有檔名和類名一致,b目錄下的檔名和類名也一樣,但是會多乙個和類名一樣的目錄,比如類mapa,存放在目錄b/mapa/mapa.php,那麼a和b註冊載入機制不一樣,如果用__autoload就需要多從判斷,而spl_autoload_register分開寫兩種註冊機制,都進行註冊就好了。其實只是spl_autoload_register比__autoload更靈活而已。

spl_autoload_register內部維護了乙個佇列,後註冊的在隊首,載入類的時候依次呼叫佇列中的載入函式,直至類載入成功

php 載入 php自動載入方式

本篇文章介紹的內容是關於php自動載入方式,現在分享給大家,有需要的朋友可以參考一下這篇文章的內容 php載入檔案方式 1 include,include once,requice,requice one常規載入 2 autoload 3 spl autoload register 常規載入方式 假...

php自動載入

很多開發者寫物件導向的應用程式時對每個類的定義建立乙個 php 原始檔。乙個很大的煩惱是不得不在每個指令碼 每個類乙個檔案 開頭寫乙個長長的包含檔案列表。在 php 5 中,不再需要這樣了。可以定義乙個 autoload 函式,它會在試圖使用尚未被定義的類時自動呼叫。通過呼叫此函式,指令碼引擎在 p...

php自動載入

php自動載方法有兩種.第一種方案用 autoload,這個函式較簡單,也較弱.但有一問題沒有解決,就是在include前判斷檔案是否存在的問題.1 2 3 4 5 6 7 8 9 10 11 12 13 set include path aa path separator get include ...