4

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

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

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

为了引发这个错误,我所做的就是安装 PHPBB。一旦我插入了数据库设置和管理员帐户设置,它就会出现这个错误并且不允许我继续。我没有安装扩展(当然)。

另外,我无法在指定的文件中找到 nfc 函数。我不确定它是否包含在内。我还在所有文件中搜索了“function nfc”(不包括引号),但一无所获,因此无法使用:Strict Standards: Non-static method STemplate::assign() should not be called statically 。我知道这个问题很常见,许多人声称某个修复程序对他们有用,但我无法应用这些修复程序,因为它们适用于 PHPBB 的早期版本(即 1.0.4)。

过去我可以在 localhost 上安装 PHPBB,但现在不行。我目前没有有效的 PHPBB 安装。

感谢您提供的任何帮助。

4

3 回答 3

13

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

如果您想从问题的根源正确解决此问题,

打开includes/utf/utf_tools.php

转到~第 1663 行

代替

utf_normalizer::nfkc($text);

$utf_normalizer = new utf_normalizer();
$utf_normalizer->nfkc($text);
unset($utf_normalizer);

我仍然不确定为什么这个问题没有在适当的版本中得到修复

于 2014-09-26T19:17:38.243 回答
6

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

上线~22换线

error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);

error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT);

这可能会解决您的问题=)。

于 2012-08-22T15:31:55.280 回答
2

我在更新到 3.0.12 后今天遇到了类似的问题,我认为正确的解决方案是将 utf_normalizer.php 中的所有函数设为静态,而不是对这些函数的所有调用设为非静态。顺便说一句,这就是它在 phpbb 3.1.1 中的完成方式

于 2014-11-04T15:12:05.197 回答