2014-10-10 79 views
0

我正在使用phpstorm作爲IDE。而在我的class.php,我開始以班級爲從擴展類中調用函數的最佳方式

class MyClass extends Database{ 
    function sample(){ 
     $this->query(); 
    } 
} 

query()在類Database。但phpstorm顯示的警告,

Method 'query' not found in class MyClass. Referenced method is not found in subject class. 

但該功能沒有任何問題的工作。

這種代碼風格有什麼問題嗎?或者我需要嘗試一種不同的方法?我搜索了很多網站。但沒有得到正確的答案。請幫忙。謝謝。

+0

這是顯示錯誤的實際代碼片段嗎? – LazyOne 2014-10-10 09:13:07

+0

對不起,沒有信息。該代碼運行完美。我現在用代碼編輯它。 :) – Arun 2014-10-10 09:14:08

+1

$ this-> query();應該在一個方法裏面。 – 2014-10-10 09:18:59

回答

0

問題是你需要類中的所有東西在類被實例化後從方法或類之外被調用。

一類

編輯您不能使用$this方法範圍之外,OP改變問題:

正常工作對我來說,沒有任何警告 enter image description here

+0

這不是一個錯誤。只是PHPStorm的警告。如果我將鼠標懸停在'query()'上,它會顯示消息 – Arun 2014-10-10 09:29:52

+0

嘗試使緩存無效並重新啓動phpstorm,它可能是緩存/索引問題 – DarkMukke 2014-10-10 09:36:37

0
class MyClass extends Database{ 
    function sample(){ 
     parent::query(); 
    } 
} 

是這方面的工作?

+0

現在警告是問題中的上一個錯誤,並且會顯示多一個警告'父類的多個定義存在' – Arun 2014-10-10 09:27:12

+0

@Arun這意味着您的項目中有多個(多個)'Database'類 – LazyOne 2014-10-10 09:34:46

+0

這怎麼可能?具有名稱名稱的多個類將在執行時導致錯誤。對?這裏沒有發生這種事情 – Arun 2014-10-10 09:36:43