严格的标准:非静态方法(Strict Standards: Non-static method)

2019-09-29 13:10发布

我运行Ubuntu + PHP 5.4,得到了这样的错误:

严格的标准:非静态方法XTemplate ::我()不应该被静态调用,在...假设$这从不相容方面上线339

并且该方法是这样的:

interface ITemplate
{
    public function I();
}

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

而这个代码在Windows 7中运行XAMPP正常。 我发现只建议关闭error_reporing,但我需要解决这个问题。 我需要在php.ini中的一些其他设置安装就轮到一些模块?

Answer 1:

因为你调用的函数,而不是静态的创建XTemplate类的实例,你所得到的错误消息。 根据您的情况,要么使功能静:

static public function I()
    {
             ...
    }

可以先建立XTemplate的一个实例:

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

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

编辑: 此页可能是有趣的你。



Answer 2:

我有同样的错误,你需要的是在接口的改变: public function I(); 更改为public static function I(); 当你创建实例使用

public static function I();

我希望这帮助。



文章来源: Strict Standards: Non-static method