资源交易网

 找回密码
 免费注册
查看: 26|回复: 0

Discuz! x 3.2-3.4,PHP7.2安裝Discuz后报错原因与解决方法!

[复制链接]
发表于 2026-2-13 13:27:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转资源交易网。

您需要 登录 才可以下载或查看,没有帐号?免费注册

x
969.jpg

新主机安装discuz3.2/3.4后打开网站首页,在最顶部报错误如下
Deprecated: __autoload() is deprecated, use spl_autoload_register() instead in /storage/sdcard0/htdocs/DiscuzX/upload/source/class/class_core.php on line 27

原因解析

自PHP 7.2.0起__autoload()已被弃用。 非常不鼓励依赖此功能。

请使用spl_autoload_register($callable)来替代__autoload()自动加载函数。其中参数$callable是一个自定义函数。自定义函数的参数为需要加载的类。其他用法和使用__autoload()自动加载函数一样。

spl_autoload_register()可以注册多个自动加载函数,而使用自动加载函数__autoload()自动加载类时只能写一个__autoload()函数。

Discuz!使用传统的__autoload()来自动加载类文件,在PHP 7.2中运行需要改为spl_autoload_register()。

解决方法如下

找到文件source\class\class_core.php,用文件编辑软件打开,搜索到以下代码:
  • if(function_exists('spl_autoload_register')) {
  • spl_autoload_register(array('core', 'autoload'));
  • } else {
  • function __autoload($class) {
  • return core::autoload($class);
  • }
  • }




将由}后else开始部分删除,代码变为

  • if(function_exists('spl_autoload_register')) {
  • spl_autoload_register(array('core', 'autoload'));
  • }



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

//-->
资源交易网:版权所有
资源交易网是互联网上传和各网友发布的资源
注:资源交易网如有信息侵犯了您的权益,请联系客服QQ:503579210及时删除。福尊网将乐意接受您的意见,并及时作出修改。
免责声明:资源交易网所有内容仅代表发表者个人观点,不代表资源交易网立场。资源交易网拒绝任何人以任何形式在本网发表与中华人民共和国法律相抵触的言论!
返回顶部