За последние 24 часа нас посетили 20767 программистов и 1121 робот. Сейчас ищут 384 программиста ...

Цикл for в php зависает

Тема в разделе "PHP для новичков", создана пользователем blacksta92, 25 ноя 2019.

Метки:
  1. blacksta92

    blacksta92 Новичок

    С нами с:
    22 апр 2018
    Сообщения:
    7
    Симпатии:
    0
    Есть такой цикл:

    for($i=$min_edit_date;$i<=$max_edit_date;$i++){
    echo $i;
    }

    min_edit_date = 1
    max_edit_date - дни месяца, может быть любое число от 1 до 31

    Цикл виснет если max_edit_date равна 1 или 2, если больше 2, то работает быстро, не могу понять причину
     
  2. blacksta92

    blacksta92 Новичок

    С нами с:
    22 апр 2018
    Сообщения:
    7
    Симпатии:
    0
    Нашел решение, только не пойму как это связано...

    Переменную $i переименовал на любую другую ($i_day) и все заработало, если кто может, подскажите почему так произошло?
     
  3. AlexandrS

    AlexandrS Активный пользователь

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    Во первых код нужно вставлять через </>
    Во вторых, если что-то не работает, нужно давать именно тот код, который не работает. А если прям фантастика какая, то и версию PHP.

    PHP:
    1. <?php
    2.  
    3. $min_edit_date = 1;
    4. $max_edit_date = 2;
    5.  
    6. for($i=$min_edit_date; $i<=$max_edit_date; $i++){
    7.  
    8.     echo $i;
    9.  
    10. }
    11.  
    12. ?>
    Всё отрабатывает.
     
  4. blacksta92

    blacksta92 Новичок

    С нами с:
    22 апр 2018
    Сообщения:
    7
    Симпатии:
    0
    Спасибо, буду иметь ввиду.

    Отдельно выведенный цикл у меня работал, вся страница с которым связан данный цикл у меня состоит из 80 000 символов, выявил что именно этот цикл мешал загрузке страницы и именно со значением равным 1 или 2, если вовсе убирал данный цикл, тоже грузилась страница нормально, так и понял что в нем вся проблема, только связь не нашел, как и почему.

    Конечно объяснять у меня не получается
     
  5. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.068
    Симпатии:
    1.231
    Адрес:
    там-сям
    Любые совпадения случайны, как говорится. Ты и сам догадываешься, что связи нет.
    --- Добавлено ---
    Или ты вставляя сюда пример отрезал как раз то, что имеет значение.
     
  6. blacksta92

    blacksta92 Новичок

    С нами с:
    22 апр 2018
    Сообщения:
    7
    Симпатии:
    0
    Проблема была именно в этом цикле, даже перед и после цикла уничтожал переменную $i не помогло, просто заменил другим именем переменную и заработала, шайтан машина
     
  7. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    @blacksta92, чудес не бывает, где-то ты сильно косячишь. Но так как книг не читаешь, не можешь понять где именно.
     
    #7 Valick, 25 ноя 2019
    Последнее редактирование: 25 ноя 2019
  8. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
    тупая машина. Что скажешь, то и делает.
    В формулировках ищи косяки :)
     
  9. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.591
    Симпатии:
    360
    Вывод один: в теле цикла переменная $i изменяется, а не только используется её значение.
    Например, простейшая ошибка: присваивание ($i = чему-нибудь) вместо сравнения ($i == чему-нибудь) в условном операторе.
    Либо просто хвост от Copy+Paste затесался.