致命错误:__autoload()不再受支持,请使用spl_autoload_register()PHP 8.0



我有一个用php5.6创建的网站,需要更新到php8.0.10。

因此,在这个第一个troble中,我们有一个不再支持的函数__autoload。

我如何更改为spl_autoload_register?

查看我的代码:

function __autoload($className) {
$classpath = array(
'model/','helpers/','plugin/email/',//frontend
'../model/','../helpers/','../plugin/email/'//backend
);    
$classFile = ucfirst($className) . ".php";
$loaded = false;
foreach ($classpath as $path) {
if (is_readable("$path$classFile")) {
require "$path$classFile";
$loaded = true;
break;
}
}
} 

不用麻烦。使用composer并删除旧内容。

https://getcomposer.org/doc/04-schema.md#classmap

例如

{
"autoload": {
"classmap": ["src/", "lib/", "Something.php"]
}
}

当它设置正确时(在composer init等之后(,只需运行以下命令:

  • 作曲家转储

最新更新