久久久久av_欧美日韩一区二区在线_国产精品三区四区_日韩中字在线

返回列表 發帖
查看: 3127|回復: 0

Discuz! x 3.2-3.4,PHP7.2安裝Discuz后報錯原因與解決方法!

83

主題

2786

回帖

3569

積分

功行圓滿

貢獻
23 點
金幣
351 個
樓主
發表于 2020-9-26 00:24:36 | 只看樓主 |倒序瀏覽 |閱讀模式
新主機安裝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. }
復制代碼




回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

  • 關注公眾號
  • 有償服務微信
  • 有償服務QQ

手機版|小黑屋|Discuz! 官方交流社區 ( 皖ICP備16010102號 |皖公網安備34010302002376號 )|網站地圖|star

GMT+8, 2025-9-19 05:52 , Processed in 0.077279 second(s), 28 queries .

Powered by Discuz! W1.0 Licensed

Copyright © 2001-2025 Discuz! Team.

關燈 在本版發帖
有償服務QQ
有償服務微信
返回頂部
快速回復 返回頂部 返回列表