目前,我正在安装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”(不包括引号),但没有找到任何内容,因此我无法使用它:Strict Standards: Non-static method STemplate::assign() should not be called statically 。我知道这个问题很常见,许多人都声称某个修复程序对他们有用,但是我无法应用这些修复程序,因为它们适用于早期版本的PHPBB(即1.0.4)。
我以前能够在localhost上安装PHPBB,但现在还没有。我目前没有安装PHPBB。
感谢您给予的任何帮助。
答案 0 :(得分:12)
我知道这已经过时了,而不是压制问题
如果您想在问题的根源上正确解决此问题,
打开包含/ utf / utf_tools.php
转到~1663行
替换
utf_normalizer::nfkc($text);
使用
$utf_normalizer = new utf_normalizer();
$utf_normalizer->nfkc($text);
unset($utf_normalizer);
我仍然不确定为什么这个问题没有在正确的版本中得到修复
答案 1 :(得分:6)
转到/ includes文件夹并打开startup.php
在线~22改变线
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
到
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT);
这可以解决你的问题=)。
答案 2 :(得分:2)
我在更新到3.0.12之后遇到了类似的问题,我认为正确的解决方案是在utf_normalizer.php中创建静态所有函数,而不是对这些函数进行非静态的所有调用。 顺便说一句,这是在phpbb 3.1.1
中完成的