【问题标题】:Strict Standards: Non-static method严格标准:非静态方法
【发布时间】:2013-03-31 15:19:33
【问题描述】:

我正在运行 Ubuntu + PHP 5.4 并收到这样的错误:

严格标准:非静态方法 XTemplate::I() 不应该是 静态调用,假设 $this 来自不兼容的上下文 ... 在第 339 行

那个方法看起来像这样:

interface ITemplate
{
    public function I();
}

class XTemplate implements ITemplate
{
    public function I()
    {
             ...
    }
}

并且此代码在 XAMPP 中的 Windows 7 上运行正常。 我只找到了关闭 error_reporing 的建议,但我需要解决它。 我是否需要安装一些模块才能打开 php.ini 中的一些其他设置?

【问题讨论】:

  • 函数I()怎么调用?
  • 我这样称呼它:XTemplate::I()->makeTemplate(...);

标签: php methods static strict


【解决方案1】:

您收到错误消息是因为您正在静态调用函数,而不是创建 XTemplate 类的实例。根据您的情况,将函数设为静态:

static public function I()
    {
             ...
    }

或者先创建一个XTemplate的实例:

$myXtemplate = new XTemplate();
$myXtemplate->I();

我希望这能回答你的问题。

编辑: This page 你可能会感兴趣。

【讨论】:

    【解决方案2】:

    我也有同样的错误,你只需要改变界面: public function I(); 更改为 public static function I(); 当你创建实例时使用

    public static function I();
    

    希望对你有所帮助。

    【讨论】:

      猜你喜欢
      • 2015-05-08
      • 2013-05-08
      • 2013-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      相关资源
      最近更新 更多