Все значения массива PHP, возвращаемые request_array, имеют одинаковый индекс

#php #arrays

#php #массивы

Вопрос:

 $item_list = request_array($item);
print_r($item_list);
  

Это выводит:

Массив ([7] => dmulder ) Массив ([7] => blah ) Массив ([7] => wef ) Массив ([7] => ) Массив ([7] => ) Массив ([7] => ) Массив ([7] => ) Массив ([7] => ) Массив ([7] => )

Все значения индексируются 7. Кто-нибудь знает, что вызывает это?

Это request_array:

 function request_array($varname) {
    if (!empty($_REQUEST[$varname])) {
        return (array) $_REQUEST[$varname];
    } else {
        return array();
    }
}
  

Комментарии:

1. Это не стандартная функция PHP. Как выглядит его код?

2. Какая функция? request_array ?

3. Не осознавал этого. Должно быть, кто-то из моей команды написал это. Позвольте мне найти его.

4. Кроме того, вы получаете обратно массив массивов…. невозможно иметь массив с несколькими элементами, имеющими один и тот же ключ.

5. Теперь, если это не самый глупый фрагмент кода… Должно быть в TDWTF. $_REQUEST является суперглобальным и ВСЕГДА присутствует, даже если просто как пустой массив.

Ответ №1:

Это может решить вашу проблему….

 function request_array($varname) {
    if (!empty($_REQUEST[$varname])) {
        return $_REQUEST[$varname];
    } else {
       return array();
    }
}
  

Настройка типа здесь не требуется…