博客列表 >类的自动加载器

类的自动加载器

吴长清
吴长清原创
2022年08月17日 10:46:41329浏览

关键字 spl_autoload_register(function ($class) {}

Demo1.php

  1. namespace admin\controller;
  2. class Demo1
  3. {
  4. public static function index()
  5. {
  6. return '这是Demo1下面的index方法,其路径时: '.__METHOD__;
  7. }
  8. }

Demo2.php

  1. namespace admin\controller;
  2. class Demo2
  3. {
  4. public static function index()
  5. {
  6. return '这是Demo2下面的index方法,其路径时: '.__METHOD__;
  7. }
  8. }

autoloader.php自动加载器
作用:简化了在引用多个类时需要一个一个使用require引入当前文件的重复操作

  1. <?php
  2. // 自动加载器
  3. spl_autoload_register(function ($class) {
  4. // 适配不同系统环境的路径
  5. $path = str_replace('\\', DIRECTORY_SEPARATOR, $class);
  6. // __DIR__ : 当前文件的目录
  7. // DIRECTORY_SEPARATOR: 当前系统路径的分隔符‘\’或者‘/’
  8. // 自动加载绝对路径
  9. require __DIR__ . DIRECTORY_SEPARATOR . $path . '.php';
  10. });

index.php中使用自动加载器,并调用Demo1.phpDemo2.php中的index方法

  1. // 引入自动加载器
  2. require 'autoloader.php';
  3. // 起别名
  4. use admin\controller\Demo1;
  5. use admin\controller\Demo2;
  6. // 调用
  7. echo Demo1::index(). '<br>';
  8. echo Demo2::index(). '<br>';

使用自动加载器的前提:

  1. 一个文件只有一个类
  2. 这个类名和文件名必须一致
  3. 这个类的命名空间,必须映射到类文件所在的路径
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议