首頁 >後端開發 >php教程 >PHP中類別自動載入實例解析

PHP中類別自動載入實例解析

小云云
小云云原創
2018-03-31 09:57:561318瀏覽

在php中需要用到另一個檔案中的php程式碼是時,可以用include、include_once、require、require_once去引入類別檔案。其中require和include的區別是語法嚴格度的區別:當引入的文件發生錯誤時,使用include的語法會報錯,但其後面的語句會繼續執行。而require在發生錯誤後則會停止執行。

include和include_once的差異在於:include在使用時,存在一次就會引入一次,而include_once當引入相同的檔案時則會只引入一次。

一般在使用中由於可能會包含大量的引入文件,這時就需要寫大量的include/require語句。這樣極為不便,針對這種情況,可以使用自動載入。

    1.使用__autoload()魔術函數:

        當程式「需要一個類別「時,系統會自動呼叫該函數,該函數需要 我們自己定義:

function __autoload($className){
	require "需要引入文件的路径(不包含文件名)".$className.".php";
}

          變數$className是在自動呼叫該函數是傳入的類別名稱。

    2.使用spl_autoload_register()函數:

        用它宣告多個可以用來取代__autoload()函數,
## 函數名稱1");


            spl_autoload_register("函數名稱2");............這樣的功能其實是和__autoload()的功能一樣;

//此处声明三个自动加载函数名,
spl_autoload_register('auto1');
spl_autoload_register('auto2');
spl_autoload_register('auto2');
//接下来需要定义所声明的函数。
function auto1($className){
	$file="文件路径".$className.".php";
	if(file_exists($file)){
		require $file;
	}
}
function auto2($className){
	$file="文件路径".$className.".php";
	if(file_exists($file)){
		require $file;
	}
}
function auto2($className){
	$file="文件路径".$className.".php";
	if(file_exists($file)){
		require $file;
	}
}
在使用该方法时,需要类时,会按照声明的顺序先从auto1()调用,如果有的话就引入,如果不存在,就到下一个函数调用......

    spl_autoload_register()與__autoload()的區別在於,spl_autoload_register()能夠從不同檔案路徑中引入不同的檔案。並且當檔案中註冊了spl_autoload_register()後方法__autoload()自動無效。

相關推薦:

PHP實作自動載入功能

#PHP實作路由和類別自動載入

PHP實作自動載入相關函數

以上是PHP中類別自動載入實例解析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn