Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 14.10.2007, 08:02
AleXNoD GD вне форума Посмотреть профиль Отправить личное сообщение для AleXNoD GD Посетить домашнюю страницу AleXNoD GD Найти все сообщения от AleXNoD GD
  № 1  
Ответить с цитированием
AleXNoD GD
 
Аватар для AleXNoD GD

Регистрация: Jan 2006
Адрес: Минск
Сообщений: 195
Отправить сообщение для AleXNoD GD с помощью ICQ
По умолчанию Странное зацикливание

Вот скажите мне, почему

Код:
<?
$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", то есть не увеличивать значение, то всё отлично. Проблема именно с "++".
__________________
Русские флеш игры

Старый 14.10.2007, 23:30
AleXNoD GD вне форума Посмотреть профиль Отправить личное сообщение для AleXNoD GD Посетить домашнюю страницу AleXNoD GD Найти все сообщения от AleXNoD GD
  № 2  
Ответить с цитированием
AleXNoD GD
 
Аватар для AleXNoD GD

Регистрация: Jan 2006
Адрес: Минск
Сообщений: 195
Отправить сообщение для AleXNoD GD с помощью ICQ
Загадка не для оного ума...
__________________
Русские флеш игры

Старый 15.10.2007, 00:18
Skubent вне форума Посмотреть профиль Отправить личное сообщение для Skubent Посетить домашнюю страницу Skubent Найти все сообщения от Skubent
  № 3  
Ответить с цитированием
Skubent
 
Аватар для Skubent

Регистрация: Oct 2005
Адрес: Млечный Путь, 7-й рукав, YD AC-451, 3-я планета.
Сообщений: 996
Отправить сообщение для Skubent с помощью ICQ
Осталось сообразить, что инкремент неопределенного значения на единицу может повесить что угодно, а не только локальный браузер...
__________________
Тут вы найдете ответы на почти все вопросы:
А можно ли сделать так ? - Можно.
Почему не работает ? - Неправильно сделано.
Где ошибка ? - В ДНК.

Старый 15.10.2007, 02:14
AleXNoD GD вне форума Посмотреть профиль Отправить личное сообщение для AleXNoD GD Посетить домашнюю страницу AleXNoD GD Найти все сообщения от AleXNoD GD
  № 4  
Ответить с цитированием
AleXNoD GD
 
Аватар для AleXNoD GD

Регистрация: Jan 2006
Адрес: Минск
Сообщений: 195
Отправить сообщение для AleXNoD GD с помощью ICQ
Где ошибка? - в ДНК))))
А если серьезно, можно ли как-то обойти проблему? Этот код чисто показательный, а вообще необходимо расставить "веса" ключей при помощи инкремента. Но тут такая вот хренотень.
__________________
Русские флеш игры

Старый 15.10.2007, 02:26
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 5  
Ответить с цитированием
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Что значит чисто показательный? У вас второй массив пустой, а вы там что-то плюсуете.

Старый 15.10.2007, 03:34
Skubent вне форума Посмотреть профиль Отправить личное сообщение для Skubent Посетить домашнюю страницу Skubent Найти все сообщения от Skubent
  № 6  
Ответить с цитированием
Skubent
 
Аватар для Skubent

Регистрация: Oct 2005
Адрес: Млечный Путь, 7-й рукав, YD AC-451, 3-я планета.
Сообщений: 996
Отправить сообщение для Skubent с помощью ICQ
Буратино дали два яблока. Он отдал одно Мальвине. Сколько яблок осталось у Буратины ? Правильно, хз. Мораль - инициализируйте переменные.
__________________
Тут вы найдете ответы на почти все вопросы:
А можно ли сделать так ? - Можно.
Почему не работает ? - Неправильно сделано.
Где ошибка ? - В ДНК.

Старый 15.10.2007, 10:30
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 7  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
AleXNoD GD, а внимательно на свой код посмотреть?
Заполняется массив arr, а плюсуются значения у out, который пуст. Неудивительно, что ничего не работает.

Старый 16.10.2007, 21:10
AleXNoD GD вне форума Посмотреть профиль Отправить личное сообщение для AleXNoD GD Посетить домашнюю страницу AleXNoD GD Найти все сообщения от AleXNoD GD
  № 8  
Ответить с цитированием
AleXNoD GD
 
Аватар для AleXNoD GD

Регистрация: Jan 2006
Адрес: Минск
Сообщений: 195
Отправить сообщение для AleXNoD GD с помощью ICQ
Всё ясно, спасибо большое за красочные ответы. Просто меня смутил тот факт, что

Код:
<?
$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.
Старый 16.10.2007, 21:50
Skubent вне форума Посмотреть профиль Отправить личное сообщение для Skubent Посетить домашнюю страницу Skubent Найти все сообщения от Skubent
  № 9  
Ответить с цитированием
Skubent
 
Аватар для Skubent

Регистрация: Oct 2005
Адрес: Млечный Путь, 7-й рукав, YD AC-451, 3-я планета.
Сообщений: 996
Отправить сообщение для Skubent с помощью ICQ
>>Вы сделали вклад в создание совершенного искусственного интеллекта
Чур меня...
Код:
    if(!$out[$k]){
        $out[$k] = 1;
    }else{
        $out[$k]++;
    }
Не работает почему ? Потому что операция НЕ в условии применяется к неопределенному значению.
isset() - более правильный вариант проверки переменной на наличие значения.

Кроме того, что мешает просто заполнить весь $out единицами ?
__________________
Тут вы найдете ответы на почти все вопросы:
А можно ли сделать так ? - Можно.
Почему не работает ? - Неправильно сделано.
Где ошибка ? - В ДНК.

Старый 16.10.2007, 22:04
AleXNoD GD вне форума Посмотреть профиль Отправить личное сообщение для AleXNoD GD Посетить домашнюю страницу AleXNoD GD Найти все сообщения от AleXNoD GD
  № 10  
Ответить с цитированием
AleXNoD GD
 
Аватар для AleXNoD GD

Регистрация: Jan 2006
Адрес: Минск
Сообщений: 195
Отправить сообщение для AleXNoD GD с помощью ICQ
Цитата:
Сообщение от Skubent
Кроме того, что мешает просто заполнить весь $out единицами ?
Мешает неопределенность. Массив будет заполняться на лету.

По поводу isset - да, тут я ступил.
__________________
Русские флеш игры

Создать новую тему Ответ Часовой пояс GMT +4, время: 15:03.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 15:03.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.