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