php illegal string offset type
Warning: Illegal string offset ‘code’
Возникает ошибка Warning: Illegal string offset ‘code’
Вот строчка из-за которой выскакивает предупреждение:
UPD: уже все работает, проблема была намного глубже в коде, чем я думал.
1 ответ 1
Сама ошибка «Illegal string offset ‘code’» говорит вам о том, что вы пытаетесь использовать строку, как массив. Обращаетесь к неизвестному смещению ‘code’.
Для воспроизведения данной ошибки можно воспользоваться следующим кодом:
Естественно, со строкой так работать нельзя, правильное обращение к элементам строки осуществляется через число:
Смоделировать ситуацию в вашем коде легко, зададим валюту AED (Дирхам), как строку и будем пытаться ее получить:
Вывод: Warning: Illegal string offset ‘code’ on line 20
Решение проблемы:
Если дебагера нет или нет возможности им воспользоваться, то найти проблему можно с помощью внесения в код соответствующих временных изменений для получения информации о проблемном элменте. После строки, где присваивается currency добавьте проверку на is_string и сделайте вывод нужных элементов:
Вы получите вывод, где первая строка является запрашиваемым ключом, вторая строка из которой берется значение и третья это массив из которого берется значение, тем самым найдете проблемный элемент:
Далее, ищите ошибку, откуда у вас в массиве появился текстовый элемент.