Есть ли способ намекнуть WebIDE, что переменная имеет какой-то тип? Мне нужно перебрать массив объектов, а автозаполнение недоступно. В ZendStudio это помогает:
/* @var ClassName $object */
Я знаю, что в JetBrains есть функция для объявления массива объектов:
/**
* @return ClassName[]
*/
Но это работает только с типом возвращаемого значения функции.
php
phpstorm
type-hinting
web-ide
колипто
источник
источник
Ответы:
/* @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 ограничены определенными элементами).
Изменить: по состоянию на 2019 год аннотации Netbeans / Eclipse / Zend @var, похоже, в основном заброшены. NetBeans 11 больше не поддерживает их, и, как правило, они не поддерживаются другими IDE. Предлагаю использовать другой синтаксис.
источник