JetBrains WebIDE: подсказка типа переменной PHP? - PullRequest
73 голосов
/ 29 ноября 2009

Есть ли способ намекнуть WebIDE, что переменная имеет некоторый тип? Я должен перебрать массив объектов, и автозаполнение недоступно. Это помогает в ZendStudio:

/* @var ClassName $object */

Я знаю, что в JetBrains есть функция для объявления массива объектов:

/**
 * @return ClassName[]
 */

Но это работает только с типом возврата функции.

Ответы [ 2 ]

120 голосов
/ 30 ноября 2009

/* @var ClassName $object */ - недопустимый комментарий PHPDOC и не анализируется в текущей версии Web IDE. Используйте двойные звездочки, чтобы заставить это работать:

/** @var ClassName $object */

Кроме того, вы можете аннотировать $array в foreach($array as $var) с помощью /** @var ClassName[] $array */ и $var, тип будет выведен автоматически.

25 голосов
/ 26 марта 2014

Как уже указывалось, PhpStorm будет использовать обычные блоки phpdoc:

/** @var ClassName $object */

Однако, поскольку 2.1 также поддерживает Netbeans / Eclipse / Zend @ var annotations :

/* @var $object ClassName */

Обратите внимание, что комментарий начинается с /*, а не /** (поэтому он не будет отображаться, если вы сгенерируете фактическую документацию с помощью phpdoc). Кроме того, аргументы меняются местами, хотя PhpStorm принимает любой заказ:

/* @var ClassName $object */

И последнее, но не менее важное: они могут предшествовать практически любой произвольной строке кода (технически блоки phpdoc ограничены определенными элементами).

...