PHPStorm — тип хинтинга с массивами

Вы можете напечатать массивы подсказок следующим образом:

/** @var Class[] $variable */
$variable = /*someArrayWithObjects*/;

Но можно ли ввести подсказку для массива как самого а также объекты массива по-разному? Что-то вроде:

/** @var Class, SomeOtherClass[] $variable */
$variable = /*someArrayWithObjects*/;

Так что сам массив показывает методы из Class и каждый объект массива показывает методы из SomeOtherClass?

2

Решение

Да. Вы можете указать, что $variable является, например, Collection или массив SomeOtherClass:

/** @var Collection|SomeOtherClass[] $variable */
$variable = /*someArrayWithObjects*/;

Это даст вам завершение кода для Collection на $variable а также для методов в SomeOtherClass когда вы перебираете элементы в $variable, Это, конечно, предполагает, что вы можете перебирать $variable,

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]