Discuz! x 3.2-3.4,支持PHP7.2的解决办法

新主机安装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’));

}

原文地址:https://www.dismall.com/thread-8488-1-1.html

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

栗子博客 网站 Discuz! x 3.2-3.4,支持PHP7.2的解决办法 https://www.lizi.tw/web/21131.html

建筑工地上施工员,闲暇时弄个博客打发时间,

常见问题
  • 1、杰齐1.7仅适用于PHP5.2 2、需Zend支持 3、尽量使用宝塔面板 4、尽量使用Windows 系统,关关对Linux支持不太友好。
查看详情

相关文章

评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务

Discuz! x 3.2-3.4,支持PHP7.2的解决办法-海报

分享本文封面