我正在运行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中的其他一些设置上安装一些模块?
答案 0 :(得分:4)
您收到错误消息是因为您静态调用该函数而不是创建XTemplate类的实例。根据您的具体情况,将功能设为静态:
static public function I()
{
...
}
或者首先创建一个XTemplate实例:
$myXtemplate = new XTemplate();
$myXtemplate->I();
我希望这能回答你的问题。
编辑: This page可能会对您感兴趣。
答案 1 :(得分:-1)
我遇到了同样的错误,您只需更改界面:
public function I();
更改为
public static function I();
并在创建实例时使用
public static function I();
我希望这有帮助。