Сбой завершения кода PHPStorm для массива в массиве

У меня есть этот основной код:

    $test = array(
'nested' => array('test' => 'nada');
);

function doit()
{
global $test;
$test['nested'][''];
}

PHPStorm правильно предлагает мне «вложенный», когда я нажимаю Ctrl + Пробел
Тем не менее, я не нашел способа предложить «test» как элемент «вложенного» массива.
Похоже, что PHPStorm не знает, что вложенный является массивом и также имеет члены.

Это ошибка, я сделал что-то не так?

Согласно комментарию я попробовал другое решение, чтобы получить поддержку завершения:
Без удачи либо

    class test
{
public static $nested = array('test' => 'nada');
}

function doit()
{
$completeme = test::$nested;
$completeme['']; // no completion working

/** @var test::nested $completeme */
$completeme = test::$nested;
$completeme['']; // no completion working
}

Та же проблема для меня в IDE, на этот раз это массив внутри класса.
тест :: вложен [ »] << это работает, я получаю завершение. Но как только я сделал копию, я не нашел способа снова получить завершение или указать тип с помощью phpdoc.

0

Решение

Эта функция не реализована (Билет поддержки ключей оригинального массива).

AFAIK даже запоминание ключей для массива первого уровня добавляет некоторые заметные накладные расходы (память + процессор — зависит от реального проекта и от того, насколько интенсивно используются массивы / переменные). Учитывая это + тот факт, что в большинстве случаев первого уровня достаточно, реализация для других уровней была просто приостановлена.

https://youtrack.jetbrains.com/issue/WI-6845 — звезда / голосование / комментарий, чтобы получить уведомление о прогрессе.

0

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

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