AleksandrB
@AleksandrB
Совсем недавно вывел "Hello world"

Почему php несколько раз выполняет некоторые функции?

Есть mvc, запрос идет на index, оттуда запускается router, в нем первым делом вызывается функция, прибавляющая к значению файла 1, если счетчик выше 100 - ложиться спать на секунду, ничего не прибавляет и вновь вызываться. Позже прямо перед exit() стоит функция, убавляющая от счетчика в файле 1.
Во-первых, когда я открываю страницу напрямую в браузере (хром) он прибавляет 3 раза 1 и 2 раза отнимает 1.
Во-вторых, при многопоточном запросе с js 10 раз счетчик вообще уходит в -2. Нигде больше эти функции не вызываются, при том из тех 10 не во всех счетчик мне голову ломает, где-то разница между счетчиком в начале и в конце в 1 единицу как и должно быть. Что за чудо такое?
Прибавление
$count = intval(file_get_contents('count.txt'));
        if ($count > 100) {
            sleep(1);
            $this->count();
        } else {
            $count++;
            file_put_contents('count.txt', $count);
            $count = intval(file_get_contents('count.txt'));
            echo 'startCount: '.$count;
            return true;
        }

Убавление
$count = intval(file_get_contents('count.txt'));
        $count--;
        file_put_contents('count.txt', $count);

  • Вопрос задан
  • 102 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы