У меня есть этот основной код:
$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.
Эта функция не реализована (Билет поддержки ключей оригинального массива).
AFAIK даже запоминание ключей для массива первого уровня добавляет некоторые заметные накладные расходы (память + процессор — зависит от реального проекта и от того, насколько интенсивно используются массивы / переменные). Учитывая это + тот факт, что в большинстве случаев первого уровня достаточно, реализация для других уровней была просто приостановлена.
https://youtrack.jetbrains.com/issue/WI-6845 — звезда / голосование / комментарий, чтобы получить уведомление о прогрессе.
Других решений пока нет …