Задать вопрос

Что не нравится php в скрипте при обращении к массиву?

в скрипт передается массив:
$arParams Array
(
    [MENU] => Array
        (
            [0] => Array
                (
                    [CAPTION] => Начало
                    [LINK] => /cms/
                )

            [1] => Array
                (
                    [CAPTION] => Шифрование
                    [LINK] => /cms/crypt/
                )

            [2] => Array
                (
                    [CAPTION] => Обучение
                    [LINK] => /cms/edu/
                )

        )
)


При включенной обработке ошибок, получаю сообщение:
Notice: Undefined index: MENU in /http/cms/core/templates/default/components/menu/default/template.php on line 7 Warning: Invalid argument supplied for foreach() in /http/cms/core/templates/default/components/menu/default/template.php on line 7


В этой строке размещается такой вот безобидный код
<? foreach($arResult['MENU'] as $arMenu):?>

Меню выводится без проблем, но хотелось бы знать, с чего такое неподходящее сообщение? Может бытья чегото не знаю про массивы в php и делаю неправильно?
  • Вопрос задан
  • 2701 просмотр
Подписаться 3 Оценить 2 комментария
Пригласить эксперта
Ответы на вопрос 6
@artishok
кратко
Это может быть связано с тем, что что массив - arParams, а в foreach обрабатывается arResult ?
Ответ написан
Arris
@Arris
Сапиенсы учатся, играя.
Попробуйте и в массиве ключ "MENU" взять в кавычки. :)
Ответ написан
@TBoolean
Сделайте вывод var_dump($arResult); перед циклом foreach.
Ответ написан
Tyranron
@Tyranron
Проверьте, возможно "M" или "E" или в коде, или снаружи прилетают, не латиницей, а кириллицей, из-за чего интерпретатор их считает разными строками, хотя для человека на вид они одинаковы. Других причин для бага не вижу.
Ответ написан
@TBoolean
Ну, давайте тогда по хардкору упоримся.
Перед foreach:
var_dump($arResult['MENU'], isset($arResult['MENU']));

и вот такой еще код перед вашим foreach запустите:
foreach($arResult AS $key => $value) var_dump($key, $value);


То, что выведет, скиньте пожалуйста сюда в комментарии, только не забудьте сделать "упоминание".
Ответ написан
Комментировать
Выложи скрипт, погляжу у себя, что к чему.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы