笔记019 通过 spl_autoload_register 实现自动加载

黄舟
发布: 2023-03-04 09:24:01
原创
1071 人浏览过

spl_autoload_register

(PHP 5 >= 5.1.2, PHP 7)

spl_autoload_register — 注册给定的函数作为 __autoload 的实现

语法

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

说明

通过这个函数,可以为加载的类指定寻址方式,这样就不用大批量地 require 和 include 了。系统会自动按照指定的规则,到对应的位置下面去寻找需要实例化的类。虽然这个方法比较底层,在有框架的情况下,一般都不需要我们去做这些工作了。但是难免还是有要用的时候,比如我写这个博客的时候,我就自己需要捣腾脚本,这个时候,就绕不开了。下面的例子,就是我的脚本中要用的一个简单的自动加载的程序。

例子

spl_autoload_register(function ($class) {
    $rootPath = realpath(sprintf('%s/..', __DIR__));
    $paths = array(        'src',
    );    foreach ($paths as $path) {        if (is_file(
            $file = $rootPath . DIRECTORY_SEPARATOR . $path . DIRECTORY_SEPARATOR . $class
            . '.php'
        )) {            include $file;            break;
        }
    }
});
登录后复制

注意,匿名函数是 PHP 5.3 及以上 才可以用的,如果发现不能用,检查一下自己的 PHP 版本。我这里只是简单地指定所有的类在我的 src 文件夹下寻找,类名与文件名完全一致。

 以上就是笔记019 通过 spl_autoload_register 实现自动加载的内容,更多相关内容请关注PHP中文网(m.sbmmt.com)!


相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!