首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >[PHP] 多条spl_autoload_register的执行顺序

[PHP] 多条spl_autoload_register的执行顺序

作者头像
唯一Chat
发布于 2020-12-28 10:17:26
发布于 2020-12-28 10:17:26
8760
举报
文章被收录于专栏:陶士涵的菜地陶士涵的菜地

函数的定义如下:

代码语言:javascript
复制
spl_autoload_register ([ callable $autoload_function [, bool $throw = true [, bool $prepend = false ]]] ) : bool

官方的解释是:

代码语言:javascript
复制
如果需要多条 autoload 函数,spl_autoload_register() 满足了此类需求。 它实际上创建了 autoload 函数的队列,按定义时的顺序逐个执行。相比之下, __autoload() 只可以定义一次。
prepend
如果是 true,spl_autoload_register() 会添加函数到队列之首,而不是队列尾部。

也就是说当定义多条的时候

如果第三个参数是false , 那么执行顺序就是定义时的顺序

第三个参数是true , 执行的顺序就是定义的倒序执行

代码语言:javascript
复制
        spl_autoload_register(function ($class_name) {
            echo 111;
        },false,true);
        spl_autoload_register(function ($class_name) {
            echo 222;
        },false,true);

先输出222 后输出111

默认情况下是:

代码语言:javascript
复制
        spl_autoload_register(function ($class_name) {
            echo 111;
        });
        spl_autoload_register(function ($class_name) {
            echo 222;
        });

先输出111 后输出222

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-12-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档