|
|
|||||
Странное зацикливание
Вот скажите мне, почему
<? $arr = Array(); $out = Array(); for($i=0;$i<100;$i++){ $arr[]=$i; } foreach($arr as $k=>$v){ $out[$k]++; } ?> <? $arr = Array(); $out = Array(); for($i=0;$i<1000;$i++){ $arr[]=$i; } foreach($arr as $k=>$v){ $out[$k]++; } ?> Добавлю, что если "++" заменить на "= 1", то есть не увеличивать значение, то всё отлично. Проблема именно с "++".
__________________
Русские флеш игры |
|
|||||
Осталось сообразить, что инкремент неопределенного значения на единицу может повесить что угодно, а не только локальный браузер...
__________________
Тут вы найдете ответы на почти все вопросы: А можно ли сделать так ? - Можно. Почему не работает ? - Неправильно сделано. Где ошибка ? - В ДНК. |
|
|||||
Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
|
Что значит чисто показательный? У вас второй массив пустой, а вы там что-то плюсуете.
|
|
|||||
Буратино дали два яблока. Он отдал одно Мальвине. Сколько яблок осталось у Буратины ? Правильно, хз. Мораль - инициализируйте переменные.
__________________
Тут вы найдете ответы на почти все вопросы: А можно ли сделать так ? - Можно. Почему не работает ? - Неправильно сделано. Где ошибка ? - В ДНК. |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
AleXNoD GD, а внимательно на свой код посмотреть?
Заполняется массив arr, а плюсуются значения у out, который пуст. Неудивительно, что ничего не работает. |
|
|||||
Всё ясно, спасибо большое за красочные ответы. Просто меня смутил тот факт, что
<? $arr = Array(); $out = Array(); for($i=0;$i<1000;$i++){ $arr[]=$i; } foreach($arr as $k=>$v){ if(!$out[$k]){ $out[$k] = 1; }else{ $out[$k]++; } } ?> <? $arr = Array(); $out = Array(); for($i=0;$i<1000;$i++){ $arr[]=$i; $out[]=0; } foreach($arr as $k=>$v){ $out[$k]++; } ?> Теперь всё в порядке. Вы сделали вклад в создание совершенного искусственного интеллекта)))
__________________
Русские флеш игры Последний раз редактировалось AleXNoD GD; 16.10.2007 в 21:12. |
|
|||||
>>Вы сделали вклад в создание совершенного искусственного интеллекта
Чур меня... Не работает почему ? Потому что операция НЕ в условии применяется к неопределенному значению. isset() - более правильный вариант проверки переменной на наличие значения. Кроме того, что мешает просто заполнить весь $out единицами ?
__________________
Тут вы найдете ответы на почти все вопросы: А можно ли сделать так ? - Можно. Почему не работает ? - Неправильно сделано. Где ошибка ? - В ДНК. |
Часовой пояс GMT +4, время: 17:18. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|