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

Discuz! 官方交流社區(qū)

標(biāo)題: Discuz! x3.2、3.4,PHP7.2安裝 Discuz后報(bào)錯(cuò)原因與解決方法! [打印本頁(yè)]

作者: allthebest    時(shí)間: 2019-7-24 04:19
標(biāo)題: Discuz! x3.2、3.4,PHP7.2安裝 Discuz后報(bào)錯(cuò)原因與解決方法!
本帖最后由 allthebest 于 2019-9-13 22:26 編輯

新主機(jī)安裝discuz3.2/3.4后打開網(wǎng)站首頁(yè),在最頂部報(bào)錯(cuò)誤如下

  1. Deprecated: __autoload() is deprecated, use spl_autoload_register() instead in /storage/sdcard0/htdocs/DiscuzX/upload/source/class/class_core.php on line 27
復(fù)制代碼


原因解析

自PHP 7.2.0起__autoload()已被棄用。 非常不鼓勵(lì)依賴此功能。

請(qǐng)使用spl_autoload_register($callable)來(lái)替代__autoload()自動(dòng)加載函數(shù)。其中參數(shù)$callable是一個(gè)自定義函數(shù)。自定義函數(shù)的參數(shù)為需要加載的類。其他用法和使用__autoload()自動(dòng)加載函數(shù)一樣。

spl_autoload_register()可以注冊(cè)多個(gè)自動(dòng)加載函數(shù),而使用自動(dòng)加載函數(shù)__autoload()自動(dòng)加載類時(shí)只能寫一個(gè)__autoload()函數(shù)。

Discuz!使用傳統(tǒng)的__autoload()來(lái)自動(dòng)加載類文件,在PHP 7.2中運(yùn)行需要改為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. }
復(fù)制代碼


將由}后else開始部分刪除,代碼變?yōu)?br />
  1. if(function_exists('spl_autoload_register')) {
  2. spl_autoload_register(array('core', 'autoload'));
  3. }
復(fù)制代碼

作者: JIMCN    時(shí)間: 2019-9-10 20:54
if(function_exists('spl_autoload_register')) {
spl_autoload_register(array('core', 'autoload'));
}
應(yīng)變成這樣才對(duì)呀。




歡迎光臨 Discuz! 官方交流社區(qū) (http://www.9999xn.com/) Powered by Discuz! W1.0