Есть ли способ называть WebIDE, что переменная имеет какой-то тип? Я должен перебирать массив объектов, и автоматическое завершение недоступно. Это помогает в ZendStudio:
/* @var ClassName $object */
Я знаю, что в JetBrains есть функция для объявления массива объектов:
/** * @return ClassName[] */
Но это работает только с возвращаемым типом функции.
/* @var ClassName $object */
является недопустимым комментарием PHPDOC и не анализируется в текущей версии Web IDE. Используйте двойные звездочки, чтобы заставить его работать:
/** @var ClassName $object */
Кроме того, вы можете аннотировать $array
в foreach($array as $var)
с /** @var ClassName[] $array */
и тип $var
будет выведен автоматически.
Как уже указывалось, PhpStorm будет использовать регулярные блоки phpdoc:
/** @var ClassName $object */
Однако, начиная с версии 2.1, есть поддержка аннотаций Netbeans / Eclipse / Zend @var :
/* @var $object ClassName */
Обратите внимание, что комментарий начинается с /*
а не /**
(поэтому он не будет отображаться, если вы создадите фактическую документацию с помощью phpdoc). Кроме того, аргументы меняются местами, хотя PhpStorm принимает любой порядок:
/* @var ClassName $object */
И последнее, но не менее важное: они могут предшествовать почти любой произвольной строке кода (технически, блоки phpdoc ограничены определенными элементами).