Подтвердить что ты не робот

JetBrains WebIDE: подсказка типа переменной PHP?

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

/* @var ClassName $object */

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

/**
 * @return ClassName[]
 */

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

4b9b3361

Ответ 1

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

/** @var ClassName $object */

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

Ответ 2

Как уже указывалось, 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. Я предлагаю использовать другой синтаксис.