Blogger Information
Blog 48
fans 3
comment 1
visits 30375
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
类的自动加载器
吴长清
Original
331 people have browsed it

关键字 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. 这个类的命名空间,必须映射到类文件所在的路径
Correcting teacher:PHPzPHPz

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post