php提供了兩種方案來自動載入:__autoload()函數和spl系列函數php
1、前提約束函數
1.類文件命名方式採用駝峯寫法,且以.class.php作後綴,好比:測試
Page.class.php
2.一個類文件中只寫一個類,且這個類的名稱和文件名一致,好比:ui
類文件Page.class.php中的寫類:spa
<?php class Page { }
3.類文件都採用命名空間,且命名空間的名稱就是從根目錄到本身的路徑名,好比:code
目錄: App/Home/Page.class.php的類文件的命名空間爲:App\Home,即文件代碼爲:io
<?php namespace App\Home; class Page { }
2、測試目錄function
3、類文件代碼class
1.文件Page.class.phptest
<?php namespace App\Home; class Page { public function test(){ echo __FILE__."<br/>"; } }
2.文件Test.class.php
<?php namespace Lib; class Test { public function g(){ echo __FILE__."<br/>"; } }
4、入口文件
1.方法一:使用__autoload函數自動加載類文件
index.php代碼
<?php //自動加載 function __autoload($class){ require $class.'.class.php'; } //實例化 $p=new App\Home\Page(); $p->test(); //實例化 $t=new Lib\Test(); $t->g();
運行結果:
E:\wamp\www\Test\Work\App\Home\Page.class.php E:\wamp\www\Test\Work\Lib\Test.class.php
2.方法二:使用spl函數
注意:spl函數是指一spl開頭的一些列的函數
index.php代碼
<?php spl_autoload_register("autoLoad");//註冊給定的函數做爲 __autoload 的實現 //自定義加載函數 function autoLoad($class){ require $class.'.class.php'; } //實例化 $p=new App\Home\Page(); $p->test(); //實例化 $t=new Lib\Test(); $t->g();
運行結果:
E:\wamp\www\Test\Work\App\Home\Page.class.php E:\wamp\www\Test\Work\Lib\Test.class.php