解析PHP入口檔案的自動載入功能

2022-03-28 01:00:00 字數 1172 閱讀 7311

php的自動載入:

在php5以前,我們要用某個類或類的方法,那必須include或者require,之後才能使用,每次用乙個類,都需要寫一條include,麻煩

php作者想簡單點,最好能引用乙個類時,如果當前沒有include進來,系統能自動去找到該類,自動引進~

於是:__autoload()函式應運而生。

通常放在應用程式入口類裡面,比如discuz中,放在class_core.php中。

先講淺顯的例子:

第一種情況:檔案a.php中內容如下

<?php

classa}

?>

檔案c.php 中內容如下:

<?php   

function __autoload($class)

}

$a = new a(); //這邊會自動呼叫__autoload,引入a.php檔案

?>

第二種情況:有時我希望能自定義autoload,並且希望起乙個更酷的名字loader,則c.php改為如下:

<?php

function loader($class)}

spl_autoload_register('loader'); //

註冊乙個自動載入方法,覆蓋原有的__autoload

$a = new

a();

?>

第三種情況:我希望高大上一點,用乙個類來管理自動載入

<?php   

class loader

}

}

spl_autoload_register(array('loader', 'loadclass'));

$a = new a();

?>

當前為最佳形式。

通常我們將spl_autoload_register(*)放在入口指令碼,即一開始就引用進來。比如下面discuz的做法。

if(function_exist('spl_autoload_register'))else

}

這段扔在入口檔案最前面,自然是極好的~

//good

php載入其他php檔案,PHP自動載入類的實現

本文介紹了php中的自動載入操作實現方法,結合例項形式詳細分析了php自動載入的概念 原理 實現方法及相關操作注意事項。我們日常例項化乙個類,必須使用require 載入這個類檔案 如果載入的檔案過多,大量使用require來載入檔案,過於繁瑣與麻煩。所以在php5.1.2版本後,php加入自動實現...

PHP自動載入class檔案的方案

php5中有乙個很方便的 autoload的魔術函式,php manual中的示例如下 算是很方便的乙個函式,然而有乙個缺陷就是沒有命名空間,大量的class不得不放在乙個目錄下面,才可以用這個自動載入php的魔術函式,如果class檔案要放在不同的目錄裡面,這個自動載入就無能為力了。為了解決這個問...

詳解PHP檔案的自動載入(autoloading)

傳統上,在php裡,當我們要用到乙個class檔案的時候,我們都得在文件頭部require或者include一下 require once includes database.php require once includes user.php 但是一旦要呼叫的文件多了,就得每次都寫一vlbbt行,...