Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Странное поведение при создании массива

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
NeoN121
Отправлено: 18 Января, 2012 - 18:02:39
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Авг. 2008  


Помог: 0 раз(а)




На одном из хостингов заметил странное (для меня) поведение скрипта при реализации примерно вот такого кода:

PHP:
скопировать код в буфер обмена
  1.  
  2. foreach ($codesStrs as $codeStr) {
  3.     $codeStr = explode('=',$codeStr);
  4.     $codes[$codeStr[0]] = $codeStr[1];
  5. }
  6.  


Суть проста, в массиве $codesStrs содержатся строки вида 1234=543, и данный код аккуратно расскидывает их в массив $codes, ставя первое число из пары как ключ, а авторое как значение
Это работало на всех хостингах, но на одном я встретился с такой странной штукой. Внезапно оказалось, что вот в этой записи $codes[$codeStr[0]] PHP работает с $codes не как с массивом, а как со строкой. Тоесть, инициализирует $codes как строку и записывает в позицию номер $codeStr[0] значение из $codeStr[1]
Собственно, проблему с этим я решил, просто предварительно явно объявив $codes как массив, но суть не в этом. Мне просто крайне любопытно, каким образом PHP мог быть настроен для такого поведения?
 
 Top
LIME
Отправлено: 18 Января, 2012 - 19:24:16
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




NeoN121 сложно сказать в чем дело
маловато данных
как правило в таких случаях помогает var_dump()
воткните его везде и проследите за принимаемыми значениями
уверяю вопросы отпадут
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB