Веб-сайт JetBrains: намек на тип переменной PHP?
Есть ли способ намекнуть WebIDE, что переменная имеет какой-то тип? Мне нужно выполнить итерацию массива объектов, и автоматическое завершение недоступно. Это помогает в ZendStudio:
/* @var ClassName $object */
Я знаю, что в JetBrains есть функция для объявления массива объектов:
/**
* @return ClassName[]
*/
Но это работает только с типом возвращаемого значения функции.
2 answers
/* @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 ограничены определенными элементами).