帶小白理解php的自動載入

2021-09-12 23:51:09 字數 1509 閱讀 5509

自動載入是指在你想使用某個類,但你沒有require 對應的.php檔案的時候,程式幫你自動載入了php檔案。(require是件很痛苦的事情ovo)

在沒有自動載入之前,你的**可能是如下這樣的:

<?php 

......

$user = new database();

$user = new user();

引入了好多的require,隨著專案的不斷迭代,會很亂。這樣的設計並不好。

php5.3之後,實現了自動載入,可以通過spl_autoload_register()方法進行php檔案的的自動引入。spl_autoload_register()有三個引數。

spl_autoload_register('autoload1',true,true);第乙個引數是當需要建立的類不存在時,呼叫autoload1()這個方法。

第二個引數為true時,當類的自動載入函式無法成功註冊時會丟擲異常。

第三個引數為true時,spl_autoload_register()方法會新增類的自動載入函式到佇列之首,而不是佇列尾部。

因此,我們最後的**會是這樣:

首先定義了乙個常量為basedir為當前的目錄(根目錄),(1)當程式執行到$operation = new imoocoperation(10);時,php引擎就會搜尋作用域下是否有imoocoperation這個類,如果有,則正常引入,如果沒有則(2)呼叫spl_autoload_register()方法,然後再執行(3)autoload方法,autoload的引數$class為檔案路徑,根據psr-4規範,檔名要與類名相互對應,(也就是說,user.php檔案只能有乙個class,而且class名字必須是user),所以你在引入了php檔案後,相當於引入了這個類,就可以呼叫相應的方法了。

antuoload()在這個例子中被解析為

public static function autoload($class)

引入了這個類,自然就可以使用new operation()物件。

也就是說,只要你的**符合psr-4規範,不需要require就可以自動載入相應的類。想象一下,你並不需要引入對應的類就可以直接使用,這很棒。

如果本文對你有幫助,不妨點乙個贊!

php 載入 php自動載入方式

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

php的自動載入

php的自動載入 在php5以前,我們要用某個類或類的方法,那必須include或者require,之後才能使用,每次用乙個類,都需要寫一條include,麻煩 php作者想簡單點,最好能引用乙個類時,如果當前沒有include進來,系統能自動去找到該類,自動引進 於是 autoload 函式應運而...

php自動載入

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