含義:
當某行代碼需要一個類的時候,php的內部機制可以做到“自動加載該類文件”,以滿足該行需要一個類的這種需求。
什么時候需要一個類?
1,new一個對象的時候;
2,使用一個類的靜態方法的時候;
3,定義一個類(B)並以另一個類(A)作為父類的時候;
條件和要求
1, 當需要一個類的時候,就會自動調用某個函數(默認是__autoload),並傳入所需要的類的名字
2, 一個類應該保存到一個獨立的“類文件中”:即其中只有該類的定義,沒有別的代碼;
3,習慣上,類文件的命名要有一定的“規則”,通常是:類名.class.php
4,通常,我們需要將各種類,存儲在一些特定的目錄中,以方便確定其位置!
5,在該自動加載的函數中,“充分”使用傳過來的類名,以構建一個合適的文件路徑並載入;
自定義自動加載函數:
剛才,__autoload()函數,是系統內部的自動加載函數,我們只是定義其函數體。
但:
我們可以使用更多函數(自定義的),來實現更靈活的自動加載!
基本模式為:
spl_autoload_register(“函數1”); //聲明“函數1”作為自動加載函數;
spl_autoload_register(“函數2”); //聲明“函數2”也作為自動加載函數;
.........
然后,就去定義這些函數,跟定義__autoload()函數一樣:
function 函數1( $class_name ){
//.......
}
function 函數2( $class_name ){
//.......
}
.............
這樣,系統就會一次調用這些自動加載函數去加載所需要的類,直到加載成功!