嗨,我需要一些帮助来解决我的问题。我收到此错误:已弃用:__autoload() 已弃用,请使用 spl_autoload_register()

问题描述 投票:0回答:1

我用 spl_autoload_register 进行了更改,然后出现其他错误。
致命错误:无法重新声明 spl_autoload_register

这是我原来的代码:

function __autoload( $f )
{
    require_once('backend/' . $f . '.php');
}

我的源代码使用 PHP 7.4 (ea-php74) 和 MariaDB 10.6

我希望有人能帮我解决这个问题

提前致谢

php mysqli
1个回答
0
投票

您遇到的问题源于以下事实:

spl_autoload_register
已经是PHP中的内置函数,因此尝试重新定义它会导致致命错误。 要解决此问题,您可以定义自己的自定义自动加载函数并使用

spl_autoload_register

进行注册。例如这样:

// Define your custom autoload function
function my_autoload($class_name) {
    require_once 'backend/' . $class_name . '.php';
}

// Register your custom autoload function
spl_autoload_register('my_autoload');

使用此代码,每当 PHP 遇到尚未加载的类时,它都会调用您的 
my_autoload

函数,该函数将尝试包含“后端”目录中相应的 PHP 文件。

因此,如果您的 PHP 文件位于不同的目录中,您应该仔细检查以将 

'backend/'

替换为正确的路径……当然。

通过使用 

spl_autoload_register

,您将遵守现代 PHP 标准,因为

__autoload()
已被弃用,取而代之的是这种更灵活、更强大的机制。
    

© www.soinside.com 2019 - 2024. All rights reserved.