## 一、spl_autoload_register (推荐使用)
1、简单的方式:
目录结构
> autoload.php
> User.class.php
> test.php
autoloader.php
~~~
spl_autoload_register(function($class) {
require_once $class.'.class.php';
});
~~~
User.class.php
~~~
class User {
public function age() {
echo 28;
}
}
~~~
test.php
~~~
include 'autoloader.php';
$user = new User();
$user->age(); // 28
~~~
2、配合命名空间:
目录结构
> Api/User.class.php
> Article.class.php
> autoloader.php
> test.php
Api/User.class.php
~~~
namespace Api;
class User {
public function age() {
$age = 36;
echo $age.'<br>';
}
}
~~~
Article.class.php
~~~
use Api\User;
class Article {
public static function one() {
$user = new User();
$user->age(); // 36
$str = '获取一篇文章';
echo $str;
}
}
~~~
autoloader.php
~~~
spl_autoload_register(function($class) {
$class=str_replace('\\', '/', $class);
require_once $class.'.class.php';
});
~~~
test.php
~~~
include 'autoloader.php';
use Api\User;
$user = new User();
$user->age(); // 36
$article = new Article();
$article::one(); // 获取一篇文章
~~~
## 二、__autoload(老方式, 这里不再详述,不建议使用,可能会在以后的版本被弃用。)