2017-01-28 9 views
0

Я знаю, что для переменных, которые не объявлены как типы, PhpStorm не знает, где искать вызовы методов на имена переменных иногда.PhpStorm - Метод не найден для объекта, который является элементом массива

Я знаю, как решить эту проблему для простых переменного, предоставляя typehint с помощью простого PHPDoc комментария:

/* @var Category $category */ 
$category->getNameTranslit(); 

, но как я могу сделать это для методов, вызываемых для элемента массива?

$categories[$key]->setIsActive(true); 
+1

** 1) ** * (не соответствует теме) * Вы не используете PHPDoc - это обычный комментарий, который IDE интерпретирует так же, как PHPDoc. Комментарии PHPDoc начинаются с '/ **' (2 символа звездочки) ** 2) ** Позвольте мне пояснить это первым - поэтому '$ categories' - это массив экземпляров' Category' - правильно? Если так - '/ ** @var Категория [] $ categories * /' ** 3) ** * (общее замечание, так как я не знаю, как выглядит остальная часть кода - все может быть в порядке с вашего end) * Попробуйте предоставить правильный тег '@ return' для функций, а также полей ввода типов через' @ var' - таким образом, локальные вары имеют большие изменения в правильности автоматического вычитания. – LazyOne

+0

@ LazyOne, спасибо! отлично работает! –

ответ

0

Ответ оказался:

/** @var Category[] $categories */ 
$categories[$key]->setIsActive(true); 

Спасибо LazyOne!