【问题标题】:Non-static method utf_normalizer::nfc() should not be called statically不应静态调用非静态方法 utf_normalizer::nfc()
【发布时间】:2012-08-16 10:05:18
【问题描述】:

目前,我正在安装 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 安装。

感谢您提供的任何帮助。

【问题讨论】:

    标签: php static-methods phpbb phpbb3 static


    【解决方案1】:

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

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

    打开includes/utf/utf_tools.php

    转到~第 1663 行

    替换

    utf_normalizer::nfkc($text);
    

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

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

    【讨论】:

    • 这也在 3.0.12 版本中!使用这条线解决了这个问题,谢谢!
    【解决方案2】:

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

    上线~22换行

    error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
    

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

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

    【讨论】:

    • 谢谢你,这很有效,我现在已经能够完成安装论坛了。但是,您不是隐藏错误,而是知道我将如何修复它?谢谢。
    • 更改错误级别并不能修复基础错误。为什么你会接受一个实际上并不能回答你问题的答案?
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2014-09-08
      • 2013-11-10
      • 1970-01-01
      • 1970-01-01
      • 2015-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多