php 命名空間
nefu_wangxun
nefu_wangxun 2022-04-22 19:11:17
0
5
1094

問題:為什麼已經宣告了命名空間,在執行檔案時還要再手動匯入同一命名空間下對應檔案呢?例如:我在同一資料夾下有三個單獨的不互相衝突的類別文件,三個類別文件都聲明在同一個命名空間下,但是當我運行類別1所對應的文件時,如果用到了類別2,則報致命錯誤:找不到類別2

謝謝

nefu_wangxun
nefu_wangxun

全部回覆(1)
autoload

引入自動載入

  • 回覆 謝謝,這確實是一種解決方式。其實我更想了解的是:既然分散在不同檔案中的類別已經被定義在相同的命名空間下,為什麼還要再引入自動載入呢?同一命名空間下的類別不應該是直接相互可見的嗎?如果還要引入自動加載,命名空間的意義又在哪裡?
    nefu_wangxun 作者 2022-04-24 10:05:18
  • 回覆 全國例如都設有連鎖超市n家,並不代表n家連鎖超市數據都共通,​​你需要設立一家總公司,總公司把所有數據都所有省的數據加載到一塊,每次單獨一家省內的連鎖超市想要存取省內的數據,只需要到總公司相應的省內資料庫中即可一覽無餘
    autoload 作者 2022-04-25 09:22:12
  • 回覆 謝謝你的再次回覆。確實向你所說的。命名空間的意義可能更是為了強調文件的邏輯結構,以便於區分和更好的管理文件。就像總公司資料庫可以更好的管理多個分公司的數據一樣,但是 分公司1 要想知道 分公司2 的數據信息,還是要到總公司裡去調用的。這就像同一命名空間下的不同檔案相互使用時仍要再導入一樣。但此時你可以清晰的知道要到可能很龐大的文件系統中的哪個位置去找你需要的文件,就像你清晰的知道要去你所在的總公司數據庫去找你需要的分公司的數據資訊一樣,因為此時你需要的檔案就在你所在的命名空間下,你可以清楚的定位目標檔案位置。所以命名空間的意義並不一定在於可以實現同一空間下的文件的直接共享與可見,而且思考過後會發現,如果同一命名空間下的文件如果直接可見的話,則意味著運行一個文件時,可能要自動載入該空間下的所有文件,這很耗費資源而且載入的文件多數用不上。命名空間的意義更在於當你需要一個文件時,得益於這個文件結構,可以幫助你快速匯入你要的文件,然後你要根據自己的需求匯入個別文件。
    nefu_wangxun 作者 2022-04-25 21:28:04
  • 回覆 向你所說 -> 像你所說
    nefu_wangxun 作者 2022-04-25 21:34:09
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板