Ответ 1
Во-первых, поймите, что это использование @var не является стандартной спецификацией phpDocumentor. Это один из нескольких способов, с помощью которых различные IDE пытались сделать "автозаполнение для локальных переменных" возможным. Я знаю, что Eclipse использует формат /* @var $varName \ClassName */
. Поэтому имейте это в виду, когда появятся другие ответы/предложения.
Единственный способ, с помощью которого я могу использовать этот взлом для автозаполнения IDE с вашим двумерным массивом, - это использовать другой @var позже, когда вы читаете первое измерение, но это требует, чтобы перейти к самой переменной:
/* @var $outer array */
$outer = array( 0 => array($InstanceOfClassName,...));
/* @var $inner ClassName[] */
$inner = $outer[0];
$inner[0]->
(предположим, что здесь автозаполнение методов ClassName)
Теперь опять же, насколько это полезно для автозаполнения, зависит от того, как построила его IDE. Некоторые IDE могут знать этот синтаксис ClassName [] и вывести, что элемент, извлеченный из $inner, является ClassName, и поэтому он может показывать свои методы. Тем не менее, я не могу сказать, что я видел, что IDE делает это еще. В лучшем случае, чтобы увидеть, что IDE просто имеют доступ к хакерству @var в самой базовой форме (/* @var $var ClassName */
).
TL; DR: Ваш пробег может варьироваться, только пытаясь получить половину того, что вы после: -)