香蕉成人伊视频在线观看|学生小视频国产区|yy女主播啪啪啪视频|麻豆传播媒体APP大全免费版官网|瑜伽牲交AV|国产欧美日韩在线天堂区|白浆精品国产91

Discuz! 官方交流社區

標題: Discuz! x 3.2-3.4,PHP7.2安裝Discuz后報錯原因與解決方法! [打印本頁]

作者: allthebest    時間: 2020-9-26 00:24
標題: Discuz! x 3.2-3.4,PHP7.2安裝Discuz后報錯原因與解決方法!
新主機安裝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. }
復制代碼









歡迎光臨 Discuz! 官方交流社區 (http://m.yu-jie.cn/) Powered by Discuz! X5.0