Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/21: Рейтинг темы: голосов - 21, средняя оценка - 4.76
16 / 16 / 2
Регистрация: 05.04.2012
Сообщений: 146

"Cannot use string offset as an array in" в PHP7

06.12.2018, 14:32. Показов 4609. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Решил попробовать PHP7 и первым делом столкнулся с такой проблемой.
PHP
1
$groups_a_by_id[$row['id']]=$row;
Получаем
Notice:Array to string conversion
.
PHP
1
$groups_a_by_parent[$row['parent_id']][$row['id']]=$row;
Получаем
Fatal error: Cannot use string offset as an array
То есть как бы в какой то степени смысл понятен. Только вот не пойму как по правильно реализовать тоже самое в PHP7?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.12.2018, 14:32
Ответы с готовыми решениями:

Ошибка: cannot use string offset as an array...
function curl($url) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch,...

Ошибка Cannot use string offset as an array
Привет, столкнулся с ошибкой: Fatal error: Cannot use string offset as an array in путь on line 22 <? ini_set('error_reporting',...

Fatal error: Cannot use string offset as an array in
День добрый. Подскажите, пожалуйста, как обработать данный ответ от сервера. Получаем ответ от сервера в переменную. ...

13
1308 / 1000 / 232
Регистрация: 01.10.2018
Сообщений: 3,893
06.12.2018, 16:13
Я думаю, все же не понимаете. Вы пытаетесь сделать многомерный массив (увеличить размерность массива), но в $row по каким-то причинам не массив. В пятой версии строка могла рассматриваться, как массив однобайтовых символов, но в седьмой версии эту возможность убрали.
0
16 / 16 / 2
Регистрация: 05.04.2012
Сообщений: 146
06.12.2018, 16:26  [ТС]
Цитата Сообщение от estic Посмотреть сообщение
Я думаю, все же не понимаете. Вы пытаетесь сделать многомерный массив (увеличить размерность массива), но в $row по каким-то причинам не массив. В пятой версии строка могла рассматриваться, как массив однобайтовых символов, но в седьмой версии эту возможность убрали.
Да нет, массив. В пятерке вардампом я вижу что это массив, причем без пропусков.
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
06.12.2018, 17:33
Old_Bob, получается кто-то говорит неправду: ты или интерпретатор. И интерпретатору я верю больше.
0
 Аватар для Зверушь
461 / 369 / 94
Регистрация: 01.05.2010
Сообщений: 1,761
06.12.2018, 17:40
может скажу и не в тему, а может и в тему... У меня с переходом на php 7.2 была подобная ошибка, когда я пытался вызвать функцию так:
PHP
1
$this->row['name']();
Интерпретатор кричал, что имя функции никак не строка, хотя var_dump таки утверждал, что строка... Вылечилось таким образом:
PHP
1
$this->{row['name']}();
Рискну предположить, что тут нечто подобное. попробуйте:
PHP
1
$groups_a_by_id[{$row['id']}]=$row;
и
PHP
1
$groups_a_by_parent[{$row['parent_id']}][{$row['id']}]=$row;
Может и бред
0
16 / 16 / 2
Регистрация: 05.04.2012
Сообщений: 146
06.12.2018, 17:45  [ТС]
Хмм...
Это не массив?
Array
(
[id] => 112
[parent_id] => 1
[level] => 2
[name] => Мультирум
[priority] => 82
[archive] => 0
[type] => 0
[no_show] => 0
[is_link] => 0
)
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
06.12.2018, 17:54
Old_Bob, массив. Осталось узнать как он связан с вопросом
0
 Аватар для Зверушь
461 / 369 / 94
Регистрация: 01.05.2010
Сообщений: 1,761
06.12.2018, 17:56
Jewbacabra, ну ясно же, что это вывод от
PHP
1
var_dump($row);
И если это действительно так, то пусть попробует фигурные скобки... может и бред, а может и нет...
1
16 / 16 / 2
Регистрация: 05.04.2012
Сообщений: 146
06.12.2018, 17:59  [ТС]
Цитата Сообщение от Зверушь Посмотреть сообщение
Рискну предположить, что тут нечто подобное. попробуйте:
Мысль понятна, может как то не так нужно.
Parse error: syntax error, unexpected '{', expecting ']'
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
06.12.2018, 18:00
Зверушь, print_r, и мне это не очевидно, кода нет. Тем более $row в контексте вопроса не интересно, тут проблемы с левой частью выражения
0
 Аватар для Зверушь
461 / 369 / 94
Регистрация: 01.05.2010
Сообщений: 1,761
06.12.2018, 18:04
Jewbacabra, так $row и есть в левой части выражения тоже. Идет попытка использовать элементы $row для формирования индекса.
Вот я и предположил, что там что-то не то.
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
06.12.2018, 18:06
Зверушь, не заметил. Но суть не меняет, нужно $groups_a_by_id.
0
 Аватар для Зверушь
461 / 369 / 94
Регистрация: 01.05.2010
Сообщений: 1,761
06.12.2018, 18:11
Лучший ответ Сообщение было отмечено Old_Bob как решение

Решение

Кстати, точно! У меня с переходом на php 7.2 что-то похожее было, если массив не был объявлен заранее.
Old_Bob, проверь, чтобы перед присваиванием массиву элементов, этот массив был создан:
PHP
1
2
$groups_a_by_id = [];
$groups_a_by_parent = [];
Без этого в 5.6 прокатывало, а 7.2 падал. Может тогда и тут тоже самое.
1
16 / 16 / 2
Регистрация: 05.04.2012
Сообщений: 146
06.12.2018, 18:27  [ТС]
Зверушь,
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.12.2018, 18:27
Помогаю со студенческими работами здесь

Fatal error: Cannot use string offset as an array
Добрый день, есть функция вида: global $post; $articulo=get_post_meta( $post->ID, '_eshop_product',true ); $precio=$articulo; ...

Исправить ошибку. Array and string offset access s
Есть скрипт для генерации .htpasswd. На 7 версии PHP работает нормально, на 8 версии PHP вылетает ошибка. Fatal error: Array and string...

Ошибка "Uncaught Error: Cannot use string offset as an array"
Приветствую всех. При переезде сайта с PHP5.5 на PHP7.2 стало ругаться на эту функцию. Строки 14 и 17 вызывают ошибку "Fatal error:...

Ошибка "Fatal error: Uncaught Error: Cannot use string offset as an array" при импорте данных
как исправить данные ошибки при импорте данных? Warning: Illegal string offset 'primary-widget-area' in...

Аргумент int main(array<System::String ^> ^args): array, но не std::array?
Здравствуйте. Тема называется так же, как начинается main в любой консольной CLR - программе. Проблема вот в чем: у меня написан...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru