Вы можете напечатать массивы подсказок следующим образом:
/** @var Class[] $variable */
$variable = /*someArrayWithObjects*/;
Но можно ли ввести подсказку для массива как самого а также объекты массива по-разному? Что-то вроде:
/** @var Class, SomeOtherClass[] $variable */
$variable = /*someArrayWithObjects*/;
Так что сам массив показывает методы из Class
и каждый объект массива показывает методы из SomeOtherClass
?
Да. Вы можете указать, что $variable
является, например, Collection
или массив SomeOtherClass
:
/** @var Collection|SomeOtherClass[] $variable */
$variable = /*someArrayWithObjects*/;
Это даст вам завершение кода для Collection
на $variable
а также для методов в SomeOtherClass
когда вы перебираете элементы в $variable
, Это, конечно, предполагает, что вы можете перебирать $variable
,
Других решений пока нет …