2013-04-09 67 views
1

我運行Ubuntu + PHP 5.4,得到了這樣的錯誤:嚴格的標準:非靜態方法

Strict Standards: Non-static method XTemplate::I() should not be called statically, assuming $this from incompatible context in ... on line 339

並且該方法是這樣的:

interface ITemplate 
{ 
    public function I(); 
} 

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

而這個代碼運行正常在XAMPP中的Windows 7上。 我發現只有建議關閉error_reporing,但我需要解決它。 我是否需要安裝一些模塊才能打開php.ini中的其他設置?

+0

你如何調用函數I()? – 1615903 2013-04-09 09:09:53

+0

我這樣稱呼它:XTemplate :: I() - > makeTemplate(...); – Peter 2013-04-09 09:21:38

回答

4

您正在收到錯誤消息,因爲您正在靜態調用該函數,而不是創建XTemplate類的實例。根據您的情況,要麼使功能靜:

static public function I() 
    { 
      ... 
    } 

可以先建立XTemplate的一個實例:

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

我希望這回答了你的問題。

編輯: This page可能是有趣的你。

-1

我有同樣的錯誤,你需要的是在接口的改變: public function I();變化 public static function I();當你創建實例使用

public static function I(); 

我希望這幫助。

相關問題