2014-10-10 83 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