美文网首页
PHP 自动加载

PHP 自动加载

作者: JJNile | 来源:发表于2020-06-18 23:51 被阅读0次

PHP7 有两种自动加载方式:__autoloadspl_autoload_register()

__autoload

已经于 7.2 废弃,不在阐述

spl_autoload_register

spl_autoload_register ([ callable $autoload_function [, bool $throw = true [, bool $prepend = false ]]] ) : bool

composer 的自动加载原理就是通过 spl_autoload_register() 实现的

优势:

  1. 可以按需多次注册加载函数,__aotuload 由于是全局函数只能定义一次,不够灵活
  2. 可以设置优先级
  3. 可以被catch到错误,__aotuload 不能
  4. 注册的加载函数可以按需被 spl_autoload_unregister

简单实现

classes/A.php


class A
{
    public function __construct()
    {
        echo "1\n";
    }
    public function aa()
    {
        echo "aa\n";
    }
    public static function bb()
    {
        echo "bb\n";
    }
}

autoload.php

spl_autoload_register(function($class) {
    require 'classes/'.$class.'.php';
});

$a = new A();
$a->aa();
$a::bb();

/* 输出结果:
1
aa
bb
*/

相关文章

  • 自己编写PHP框架需要考虑的部分

    1. MVC2. 自动加载: PHP: 自动加载类;3. 错误处理:http://php.net/manual/z...

  • Laravel5.4 启动探索

    index.php 入口文件 自动加载初窥 自动加载最主要代码(来自vendor/composer目录下的自动加载...

  • Yii2 PHP框架

    自动加载函数 Yii2 PHP框架学习记录--自动加载函数 常量 Yii2 PHP框架学习记录-常量 $_SERV...

  • PHP 使用总结

    自动类加载 (auto-load) 自动类加载说白了就是自动 include / require php 文件,这...

  • PHP 懒加载哪些事儿

    PHP自动加载 此篇文章主要介绍加载的php类的方式,以及自动加载的几种模式;题外话:大家空了可以多看看别人写的框...

  • Laravel源码之自动加载

    自动加载文件加载流程: 1)public/index.php中定义需要包含的autoload.php 2)auto...

  • PHP Composer详解

    PHP composer php composer的作用 composer是如何实现类的自动加载 composer...

  • PHP自动加载

    文章总结了PHP的自动加载机制,包含魔法函数 __autoload()和spl autoload函数。 缘起 PH...

  • PHP 自动加载

    PHP7 有两种自动加载方式:__autoload 和 spl_autoload_register() __aut...

  • Laravel 运行原理分析与源码分析,底层看这篇足矣

    一、运行原理概述 laravel 的入口文件 index.php 1、引入自动加载 autoload.php 2、...

网友评论

      本文标题:PHP 自动加载

      本文链接:https://www.haomeiwen.com/subject/dukmxktx.html