EvTimer::__constructСоздаёт объект наблюдателя EvTimer
&reftitle.description;
publicEvTimer::__constructfloatafterfloatrepeatcallablecallbackmixeddata&null;intpriority0
Метод создаёт объект наблюдателя EvTimer.
&reftitle.parameters;
after
Параметр after устанавливает количество секунд,
через которое запустится таймер.
repeat
Таймер автоматически остановится после истечения времени ожидания,
если время повтора равно 0.0.
При положительном значении таймер автоматически настроится на повторный запуск
через заданный в секундах интервал, пока таймер не остановят вручную.
callback
Смотрите страницу
«Callback-функции наблюдателей.
data
Пользовательские данные, связанные с наблюдателем.
priority
«Приоритет наблюдателя».
&reftitle.examples;
Пример простых таймеров
stop();
// Останавливаем наблюдателя, если очередные вызовы создадут более 10 итераций
Ev::iteration() >= 10 and $w->stop();
});
// Создаём остановленный таймер. Таймер будет неактивным, пока его не запустят вручную
$w_stopped = EvTimer::createStopped(10, 5, function($w) {
echo "Callback-функция таймера, который создали остановленным\n";
// Останавливаем наблюдателя после 2 итераций
Ev::iteration() >= 2 and $w->stop();
});
// Цикл до вызова Ev::stop() или остановки всех наблюдателей
Ev::run();
// Запускаем и смотрим, работает ли таймер
$w_stopped->start();
echo "Запустили одну итерацию\n";
Ev::run(Ev::RUN_ONCE);
echo "Перезапустили второй наблюдатель и пробуем обработать те же события, но не блокируем\n";
$w2->again();
Ev::run(Ev::RUN_NOWAIT);
$w = new EvTimer(10, 0, function() {});
echo "Запуск заблокированного цикла\n";
Ev::run();
echo "END\n";
?>
]]>
&example.outputs.similar;
&reftitle.seealso;
EvTimer::createStoppedEvPeriodic
ev_timer — относительное и необязательно повторяющееся время ожидания
Будьте осторожны со временем ожидания