关键字 spl_autoload_register(function ($class) {}
Demo1.php
namespace admin\controller;
class Demo1
{
public static function index()
{
return '这是Demo1下面的index方法,其路径时: '.__METHOD__;
}
}
Demo2.php
namespace admin\controller;
class Demo2
{
public static function index()
{
return '这是Demo2下面的index方法,其路径时: '.__METHOD__;
}
}
autoloader.php
自动加载器
作用:简化了在引用多个类时需要一个一个使用require
引入当前文件的重复操作
<?php
// 自动加载器
spl_autoload_register(function ($class) {
// 适配不同系统环境的路径
$path = str_replace('\\', DIRECTORY_SEPARATOR, $class);
// __DIR__ : 当前文件的目录
// DIRECTORY_SEPARATOR: 当前系统路径的分隔符‘\’或者‘/’
// 自动加载绝对路径
require __DIR__ . DIRECTORY_SEPARATOR . $path . '.php';
});
index.php
中使用自动加载器,并调用Demo1.php
和Demo2.php
中的index
方法
// 引入自动加载器
require 'autoloader.php';
// 起别名
use admin\controller\Demo1;
use admin\controller\Demo2;
// 调用
echo Demo1::index(). '<br>';
echo Demo2::index(). '<br>';
使用自动加载器的前提:
- 一个文件只有一个类
- 这个类名和文件名必须一致
- 这个类的命名空间,必须映射到类文件所在的路径