php 7 и foreach

  • Автор темы Автор темы avgaz
  • Дата начала Дата начала

avgaz

Новичок
Здравствуйте, подскажите как поправить что бы на php 7 работал следующий код
Код:
require "$lang/$file_lang";
     foreach ($langs as $k => $v) {
       $this->lang[$k] = stripslashes($v);
     }
содержимое файлов $file_lang
Код:
$langs['title'] = "Название";
$langs['categor'] = "Категория";
$langs['rew_url'] = "ЧПУ замена";
$langs['testo'] = "Полное описание";
......
 
Последнее редактирование:
@antson, не выдает не каких ошибок, просто место языковых слов по одному � а на php 5.6 все внорме
 
У тебя где-то проблемы с кодировкой, версия php к этому не имеет отношения.

Sttipslashes, кстати, там вообще не нужно. Ни в какой версии. (До версии 5.4 была идиотская настройка magic_quotes_runtime, из-за которой могло понадобиться, но никто в здравом уме эту настройку не включал).
 
У тебя где-то проблемы с кодировкой, версия php к этому не имеет отношения.
Я тоже так изначально подумал, но если кириллицу заменить на латиницу или цифровые значения то все равно не чего не меняется везде где есть вывод из языковых файлов по одному � то есть как будто выводит только один символ
попробовал даже добавить в код выше echo $v; что бы посмотреть что хоть выводит там все нормально вывело все слова кучей в нормальной кодировке. Поискал, что в php 7 в foreach произошли изменения решил спросить как именно подправить, что бы работало ((
смотрю на код присвоения. Написан во времена php 5.2 (5.4)?
Да очень старый скрипт.
Сравниваете старую площадку и новый хостинг c дефолтными конфигами?
предполагаю, что у вас еще все в 1251 . угадал ?
Нет пытаюсь все переделать на опенсервере, все в UTF-8 и default_charset UTF-8
 
Последнее редактирование:
Автор. Значит, смотри.
У тебя очень большие проблемы

1. У тебя проблемы с логикой. Ты вбил себе в голову, что проблема с foreach, и до сих пор пытаешься ее решить, хотя очевидно, что простой перебор массива НИКАК на кодировку не влияет.
И даже после того как внутри foreach ты для проверки выводишь значение и убеждаешься что оно нормальное, все равно воображаешь, что виноват именно этот оператор.
2. Ты в принципе не умеешь поставить себя на место другого человека, который не видит твой код и твой экран. Невнятное "ниработит" можно говорить мамке, чтобы она тебе нос вытерла.
Если же ты хочешь получить помощь у незнакомых людей, научись описывать свои проблемы подробно, с максимумом деталей: что делаешь, какие исходные данные, какой код, какой результат ожидаешь, какой результат получаешь. Всё это - старательной копипастой, а не в стиле изложения "Гроза летом", которое пишут в третьем классе.

В общем, либо ты быстро научишься задавать вопросы, либо этот топик будет закрыт, чтобы люди не тратили свое время, вытягивая из тебя информацию по одному слову
 
Проблему решил, ошибка была в следующем, в начале класса переменная была обозначена так var $lang = ""; а в php 7 уже foreach так не работал Warning: Illegal string offset
обозначил так var $lang = []; и все заработала, хотя на php 5.6 нормально было
 
Даже после того как РНР человеческим языком сказал ему, где проблема, он всё равно думает, что виноват был foreach :)))
 
Интересно, дойдет до него когда-нибудь что foreach здесь вообще лишний? :)
Принимаю ставки на сроки. Я ставлю на то что дойдет не раньше, чем через два года.
 
Фанат спокойней. Человеку пхп требуется редко. Прошлый вопрос от него был 2 года назад
Вообще-то я спокоен :)
Кому что требуется - вопрос десятый. Умение разговаривать с людьми - оно универсальное.
К доктору он тоже так же ходит, "- я есть не могу. У вас челюсть сломана? - нет. Желудок болит? - нет. -А что же тогда? мы с приятелем баловались макрофлексом"?
 
Сверху