不应静态调用非静态方法utf_normalizer :: nfc()

Mic*_*son 4 php static static-methods phpbb phpbb3

目前,我正在安装PHPBB 3.0.10并遇到此错误:

严格标准:非静态方法utf_normalizer :: nfc()不应在第1781行的C:\ xampp\htdocs\PHPBB\includes\utf\utf_tools.php中静态调用

我试图在PHPBB板上找到答案,但没有运气.我在PHP中有一些背景但不了解动态的静态函数调用.我正在使用PHP v5.4.4,Apache 2.4.2和Xampp 1.8.0,如果有任何相关的话.我也在我的localhost上运行它,而不是在远程服务器上运行它.

为了引发这个错误,我所做的就是安装PHPBB.插入数据库设置和管理员帐户设置后,会出现此错误,并且不允许我继续操作.我没有安装扩展(ofcourse).

另外,我无法在指定的文件中找到nfc函数.我不确定它是否在包含中.我还搜索了所有文件中的"function nfc"(不包括引号),但没有找到任何内容,因此我无法使用它:严格标准:非静态方法STemplate :: assign()不应该静态调用 .我知道这个问题很常见,很多人都声称某个修复程序对他们有效,但是我无法应用这些修复程序,因为它们适用于早期版本的PHPBB(即1.0.4).

我以前能够在localhost上安装PHPBB,但现在还没有.我目前没有安装PHPBB.

谢谢你给予的任何帮助.

小智 12

我知道这已经过时了,而不是压制这个问题

如果你想在问题的根源上正确解决这个问题,

打开包括/ utf/utf_tools.php

转到~1663行

更换

utf_normalizer::nfkc($text);
Run Code Online (Sandbox Code Playgroud)

$utf_normalizer = new utf_normalizer();
$utf_normalizer->nfkc($text);
unset($utf_normalizer);
Run Code Online (Sandbox Code Playgroud)

我仍然不确定为什么在适当的版本中没有修复它


pho*_*ans 6

转到你的/ includes文件夹并打开startup.php

在线~22改变线

error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
Run Code Online (Sandbox Code Playgroud)

error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT);
Run Code Online (Sandbox Code Playgroud)

这可以解决你的问题=).

  • 更改错误级别不会修复基础错误.为什么你会接受一个实际上没有回答你问题的答案? (7认同)