php提供了两种方案来自动载入:__autoload()函数和spl系列函数
一、前提约束
1.类文件命名方式采用驼峰写法,且以.class.php做后缀,比如:
Page.class.php
2.一个类文件中只写一个类,且这个类的名称和文件名一致,比如:
类文件Page.class.php中的写类:
<?php
class Page {
}
3.类文件都采用命名空间,且命名空间的名称就是从根目录到自己的路径名,比如:
目录: App/Home/Page.class.php的类文件的命名空间为:App\Home,即文件代码为:
<?php
namespace App\Home;
class Page {
}
二、测试目录
三、类文件代码
1.文件Page.class.php
<?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/>";
}
}
四、入口文件
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