我用 spl_autoload_register 进行了更改,然后出现其他错误。
致命错误:无法重新声明 spl_autoload_register
这是我原来的代码:
function __autoload( $f )
{
require_once('backend/' . $f . '.php');
}
我的源代码使用 PHP 7.4 (ea-php74) 和 MariaDB 10.6
我希望有人能帮我解决这个问题
提前致谢
您遇到的问题源于以下事实:
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()
已被弃用,取而代之的是这种更灵活、更强大的机制。