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

+0

Прошу прощения за отсутствие информации. Этот код работает отлично. Теперь я редактировал это в коде. :) – Arun

+1

$ this-> query(); должен быть внутри метода. –

ответ

0

Проблема в том, что вам нужно все в классах, вызываемых методом или вне класса после создания экземпляра класса.

вы не можете использовать $this за рамки метода в классе

EDIT, ОП изменил вопрос:

отлично работает для меня, без предупреждения enter image description here

+0

Это не ошибка. Просто предупреждение PHPStorm. Если я нахожусь на 'query()', он показывает сообщение – Arun

+0

Попробуйте сделать недействительным кеш и перезапустить phpstorm, это может быть проблема кэширования/индекса – DarkMukke

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

Является ли это работает?

+0

теперь предупреждение является предыдущей ошибкой в ​​вопросе, и оно показывает еще одно предупреждение 'Существует несколько определений для класса parent. – Arun

+0

@Arun. Это означает, что в вашем проекте имеется несколько (более одного) класса' Database'. – LazyOne

+0

Как это возможно? множественный класс с именем будет вызывать ошибку при выполнении. Правильно? Здесь не было таких вещей – Arun

Смежные вопросы