隨著辛星認識一下PHP的自動載入

來源:互聯網
上載者:User
跟著辛星認識一下PHP的自動載入

作為一個架構,檔案的載入機制是不能少的,那麼我們應該怎麼載入呢,這些PHP已經給我們想好了,所以我們只需要按照規則辦事就可以了,PHP中有兩個函數可以完成這個功能,第一個是__autoload,現在已經很少用了,取而代之的是功能更加強大的spl_autoload_register,它需要的版本是PHP5.2.1之後的版本,現在我們的主流版本都是支援的,因此可以放心使用。

在以前的PHP版本中,我們往往需要require一堆的檔案名稱,比如設定檔、資料庫連接檔案、記錄檔等等,後來我們有了__autoload函數,它是在一個函數內完成所有的匯入工作,它的一個優點是可以用編程的方式來處理,比如用Regex一次可以匯入n個檔案,在一定程度上會很方便我們的操作,但是,我們必須在__autoload中把所有的類型都寫到,否則自動載入會得不到很好的實現。

現在有了spl_autoload_register,它的功能就是可以註冊n個載入函數,我們隨時隨地可以使用這個內建函數來指定我們需要載入的檔案名稱,下面是它的函數原型:

bool spl_autoload_register ( [callback $autoload_function] )
下面我們用代碼實戰一下:

首先我們建立一個B.class.php,內容如下:

name."   年齡是:".$this->age;}}
然後我們在同級目錄下建立一個a.php檔案,內容如下:

getmsg();
這裡的類B之所以能夠被正確的執行個體化,就是因為當我們定義一個類B的執行個體的時候,系統發現需要去負載檔案才行,於是他去找所有的載入函數,然後再B.class.php中找到了了B的定義,也就載入該檔案,值得注意的是,這裡的只有B.class.php被匯入,其他的格式差不多的並不會被匯入。





  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.