飘仙建站论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1245|回复: 0

[分享] Discuz! x3.2、3.4,PHP7.2安裝 Discuz后报错原因与解决方法!

[复制链接]
     

4411

主题

1万

帖子

52万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
525153

魅力奖活力之星热心会员

发表于 2019-7-24 08:33:39 | 显示全部楼层 |阅读模式
新主机安装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,用文件编辑软件打开,搜索到以下代码:

  1. if(function_exists('spl_autoload_register')) {
  2. spl_autoload_register(array('core', 'autoload'));
  3. } else {
  4. function __autoload($class) {
  5. return core::autoload($class);
  6. }
  7. }
复制代码


将else{  后部分删除,代码变为

  1. if(function_exists('spl_autoload_register')) {
  2. spl_autoload_register(array('core', 'autoload'));
  3. }
  4. }
复制代码

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|小黑屋|手机版|西部数码代理|飘仙建站论坛 ( 豫ICP备08106178号 )

GMT+8, 2020-8-5 03:51 , Processed in 0.218490 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表