gpt4 book ai didi

php - 如何使用 spl_autoload() 而不是 __autoload()

转载 作者:IT王子 更新时间:2023-10-29 00:02:19 26 4
gpt4 key购买 nike

根据 http://php.net/manual/en/language.oop5.autoload.php魔法函数 __autoload() 从 PHP 7.2.0 开始被弃用,从 PHP 8.0.0 开始被移除。

官方替代方法是 spl_autoload()。参见 http://www.php.net/manual/en/function.spl-autoload.php .但是PHP手册并没有说明这个宝贝的正确使用方法。

我的问题:如何用带有 spl_autoload() 的版本替换这个(我的自动类自动加载器)?

function __autoload($class) {
include 'classes/' . $class . '.class.php';
}

问题:我不知道如何给那个函数一个路径(它只接受命名空间)。

顺便说一下,SO 上有很多关于这个主题的话题,但没有一个给出一个干净简单的解决方案来取代我性感的单线。

最佳答案

您需要使用 spl_autoload_register 注册自动加载函数.您需要提供一个 "callable" .从 5.3 开始,最好的方法是使用匿名函数:

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

相对于 __autoload 的主要优势当然是您可以多次调用 spl_autoload_register,而 __autoload(与任何函数一样)可以只被定义一次。如果您有模块化代码,这将是一个重大缺陷。


2018 年对此的更新:您需要滚动自己的自动加载器的情况真的不应该有那么多。有一个被广泛接受的标准(称为 PSR-4 )和几个符合标准的实现。这样做的明显方法是使用 Composer .

关于php - 如何使用 spl_autoload() 而不是 __autoload(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10687804/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com